unistd.h
#include <unistd.h> POSIX 운영체제 API에 대한 액세스를 제공하는 헤더파일. 리눅스에서 사용하는 헤더 파일로 윈도우에선 <io.h> 헤더파일이 비슷한 기능을 한다고 한다. stdio.h 에서 제공하는 scanf, printf가 없고 write를 사용하여 출력이 가능하다.
write함수
ssize_t write(int fd, const void *buf, size_t count);
여기서 fd는 file descriptor (FD, less frequently fildes) - en.wikipedia.org/wiki/File_descriptor
로 파일식별자라고 한다. 파일을 열었을 때 부여되는 고유한 번호라고 한다. 이 때 번호는 음수가 아닌 0과 양의 정수가 될 수 있다고 한다.
아직 잘은 모르겠는데 위 블로그를 보니 유닉스 기반에서 표준입력(stdin)이 0, 표준출력(stdout)이 1, 표준에러(stderr)가 2로 fd가 정의되어 있다고 한다. 왜 write함수에서 fd를 꼭 1로 적는지 궁금했는데 다른 입력값을 써도 되지만 가능하면 정의된 번호를 쓰게끔 권장되는 것 같다.
scanf없이 입력받기
m.blog.naver.com/sharonichoya/220501242693
실행할 때 main에 매개변수를 입력해서 전달하면 된다. "./파일명" 으로 실행시킬 때, 뒤에 띄어쓰기 기준 char포인터 형으로 하나씩 입력을 받게 되고(문자열 입력과 같음) 각각 argv[1] argv[2] ...순서대로 입력되게 된다. 이 때 argv[0]은 실행 파일명이 입력되게 된다고 한다! 첫 번째 입력 값을 사용하고 싶다고 argv[0]으로 접근하면 안 됨. 그리고 총 개수가 argc에 자동적으로 저장되게 된다고 한다.
댓글