GNL

zeroet·2021년 1월 22일
0

42

목록 보기
1/6

GNL - static value, fd

static 변수

  • 변수를 선언할때static int
  • 메모리 데이터 영역에 저장되어 프로그램이 종료될때까지 남아있는 변수다.
  • 정적 변수는 초깃값을 지정하지 않으면 알아서 0으로 초기화된다.
  • 함수를 벗어나더라도 해당 변수는 사라지지 않고 유지되며, 함수 시작이아닌 프로그램 시작시 할당되고, 프로그램이 종료될 때 해제된다.

fd (파일 디스크립터)

  • open에서 fd를 오픈했다면 fd에 3이 온다 0,1,2 는 stdin, out, error로 설정되어있다. 파일을 오픈할때마다 3,4,5... 순으로 fd를 할당한다.
  • fd는 시스템에 따라 다르게 OPEN_MAX가 설정되어있다.

read 함수

size_t read(int fd, void *buf, size_t bytes)
  • 인자로 받은 bytes의 수만큼 fd를 읽어 buf에 저장하는 함수
  • 읽어 온 bytes 수를 반환하며, 실패시 -1을 반환하다.
  • 파일을 끝까지 읽었다면, 다음 번에는 더 이상 읽을 bytes가 없기 때문에 0을 반환한다.

open 함수

#include <fcntl.h>

int main(void)
{
	int fd;

	fd = open("hello.txt", O_RDONLY);
	if (fd == EOF)
		return (0);
	close(fd);
	return (0);
}
  • 대충 이런식으로 사용할 수 있음. open 옵션 변경가능.
profile
42 Paris developer

관심 있을 만한 포스트

0개의 댓글