unistd_function - KimTaebin-ai/study_posts GitHub Wiki
unistd.hλ POSIX νμ€μ μ€μνλ ν€λ νμΌλ‘, writeμ κ°μ λ€μν μμ€ν μ½μ μν ν¨μμ μνμ΄ μ μλμ΄ μλ€. μ΄ ν¨μλ μ€μ λ‘ μ»€λμμ μ μλ μμ€ν μ½μ νΈμΆνλλ‘ μ€κ³λμ΄ μμΌλ©°, 컀λκ³Όμ μΈν°νμ΄μ€λ₯Ό μΆμννμ¬ μ μ νλ‘κ·Έλ¨μ΄ μ½κ² νλμ¨μ΄ μμμ μ κ·Όν μ μλλ‘ λμμ€λ€.
κ° λΆμΌ λ³ μμ€ν μ½ μμ
- νλ‘μΈμ€ μ μ΄: fork(), exit(), wait(),
- νμΌ κ΄λ¦¬: open(), read(), write(), close()
- μ₯μΉ κ΄λ¦¬: ioctl(), read(), write()
- μ 보 μ μ§: getpid(), alarm(), sleep()
- 보μ(Protection): chmod(),umask(), chown()
c μΈμ΄μμ unistd ν€λνμΌμ ν΅ν΄ μ¬μ©νλ write ν¨μλ μ μ λͺ¨λμμ 컀λλͺ¨λλ‘ μ ννμ¬ νμΌ μμ€ν μ λ°μ΄ν°λ₯Ό μ°λ μμ€ν μ½μ λ°μμν¨λ€. μ΄ κ³Όμ μμ C νμ€ λΌμ΄λΈλ¬λ¦¬μ μ μλ write ν¨μλ 컀λ λ΄λΆμ write μμ€ν μ½κ³Ό μ§μ 맀νλλ€.
λ°λΌμ unistd.hμ write ν¨μλ 컀λμ write μμ€ν μ½κ³Ό λμΌν λμμ μννλ©°, λ€λ§ μ μ λͺ¨λμμ νΈμΆλ ν¨μκ° μ»€λλ‘ μμ€ν μ½μ λ°μμν€λ μν μ νλ€κ³ λ³Ό μ μλ€.
read ν¨μλ fdμμ bufκ° κ°λ¦¬ν€λ κ³³μΌλ‘ κ°μ
μν
#include <unistd.h>
ssize_t read(int fd, void *buf, size_t count);
맀κ°λ³μ:
- fd: νμΌ λμ€ν¬λ¦½ν°
- buf: λ°μ΄ν°λ₯Ό μ μ₯ν λ²νΌμ ν¬μΈν°
- count: μ½μ μ΅λ λ°μ΄νΈ μ
λ°νκ°:
- μ±κ³΅ μ: μ€μ λ‘ μ½μ λ°μ΄νΈ μ (0μ νμΌμ λ)
- μ€ν¨ μ: -1 (errnoκ° μ€μ λ¨)
λ²νΌλ?
λ²νΌ(Buffer)λ μμ κΈ°μ΅κ³΅κ°μ΄λ€. μ λ ₯ν λ°μ΄ν°κ° μ°λ¦¬ λμΌλ‘ 보μ΄κΈ°κΉμ§ λ²νΌλΌλ κ³³μ μμ μ μ₯μ κ±°μ³ νλ‘κ·Έλ¨μμ μ¬μ©λλ€.
컀νΌμμμμ μ£Όλ¬Έ μ²λ¦¬λ₯Ό μλ‘ λ€μ΄λ³΄μ
- λ²νΌκ° μλ κ²½μ°:
- μν©: λ°λ¦¬μ€ν 1λͺ , κ³ κ°μ΄ ν λͺ μ© μ£Όλ¬Έ
- κ³Όμ : κ³ κ° μ£Όλ¬Έ β λ°λ¦¬μ€ν μ»€νΌ μ μ‘° β κ³ κ°μκ² μ λ¬ β λ€μ κ³ κ° μ£Όλ¬Έ
- λ¬Έμ μ : κ° κ³ κ°μ μμ μ 컀νΌκ° μμ±λ λκΉμ§ κΈ°λ€λ €μΌ ν¨
- λ²νΌλ₯Ό μ¬μ©νλ κ²½μ°:
- μν©: λ°λ¦¬μ€ν 1λͺ , μ£Όλ¬Έ μ μλ(λ²νΌ) μΆκ°
- κ³Όμ : μ¬λ¬ κ³ κ° μ£Όλ¬Έ β μ£Όλ¬Έμκ° μ μλμ μμ β λ°λ¦¬μ€νκ° μ°μν΄μ μ»€νΌ μ μ‘°
- μ₯μ : κ³ κ° λκΈ° μκ° κ°μ, λ°λ¦¬μ€νμ ν¨μ¨μ μΈ μμ κ°λ₯
곡λΆνλ κΉμ μΊμμ λ μ§μ€ν°λ 곡λΆν΄λ³΄μλ€
as