본문 바로가기
정리 전

21.01.25

by 오젼 2021. 1. 26.

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

 

File descriptor - Wikipedia

In Unix and related computer operating systems, a file descriptor (FD, less frequently fildes) is an abstract indicator (handle) used to access a file or other input/output resource, such as a pipe or network socket. File descriptors form part of the POSIX

en.wikipedia.org

로 파일식별자라고 한다. 파일을 열었을 때 부여되는 고유한 번호라고 한다. 이 때 번호는 음수가 아닌 0과 양의 정수가 될 수 있다고 한다. 

dev-ahn.tistory.com/96

 

리눅스 - 파일 디스크립터

File Descriptor (파일 디스크립터) [출처: http://dev.plusblog.co.kr/22] 1. 파일 디스크립터 - 시스템으로부터 할당 받은 파일을 대표하는 0이 아닌 정수 값 - 프로세스에서 열린 파일의 목록을 관리하는 테

dev-ahn.tistory.com

아직 잘은 모르겠는데 위 블로그를 보니 유닉스 기반에서 표준입력(stdin)이 0, 표준출력(stdout)이 1, 표준에러(stderr)가 2로 fd가 정의되어 있다고 한다. 왜 write함수에서 fd를 꼭 1로 적는지 궁금했는데 다른 입력값을 써도 되지만 가능하면 정의된 번호를 쓰게끔 권장되는 것 같다.  

 

scanf없이 입력받기

m.blog.naver.com/sharonichoya/220501242693

 

C언어 main( ) 함수의 명령 인수 (argc, argv)

* main 함수의 매개변수는 보통 아무것도 사용하지 않지만(int main ( ) ) 경우에 따라서는 int main (int ...

blog.naver.com

실행할 때 main에 매개변수를 입력해서 전달하면 된다. "./파일명" 으로 실행시킬 때, 뒤에 띄어쓰기 기준 char포인터 형으로 하나씩 입력을 받게 되고(문자열 입력과 같음) 각각 argv[1] argv[2] ...순서대로 입력되게 된다. 이 때 argv[0]은 실행 파일명이 입력되게 된다고 한다! 첫 번째 입력 값을 사용하고 싶다고 argv[0]으로 접근하면 안 됨. 그리고 총 개수가 argc에 자동적으로 저장되게 된다고 한다.

'정리 전' 카테고리의 다른 글

21.01.27  (0) 2021.01.27
21.01.26  (0) 2021.01.26
21.01.04  (0) 2021.01.04
21.01.03  (0) 2021.01.04
21.01.02  (0) 2021.01.02

댓글