반응형

시스템콜 3

Linux : dup과 dup2

/* * http://sosal.tistory.com/ * made by so_Sal */ 이 포스팅은 open, read, write 등의 시스템콜을 기본적으로 안다는 가정 하에 작성된 글입니다. 위 시스템콜에 대해서 모르신다면 :: LINK_ 1. dup 2. dup2 1.dup - 파일 식별자를 복제한다. #include // man page 참조 int dup( int fd ); (dup은 duplication의 약자겠죠?.. 아마.. ㅋㅋ) 새로운 파일 서술자를 반환하지만, 숫자만 다를 뿐 원래의 서술자, 복제된 서술자 모두 완벽히 같은 파일을 가리킨다. 실패 : -1 반환 (파라미터로 전달된 값이 fd가 아닐경우, 더이상 fd를 할당하지 못할경우) /* * fd1 파일 디스크립터에 open을 ..

Linux :: Strace - 시스템콜과 신호 추적

strace는 system-call Tracer를 의미하는 말로, strace에 의해 추적되는 프로세스의 시스템콜, 신호를 모두 화면에 출력한다. (시스템콜 ex : read,write,exit,lstat,ipc,fork.... 대부분 표준 C 라이브러리 내에 함수로 존재) strace 프로그램은 ptrace라는 시스템콜을 사용하여 자식 프로세스가 어떤 시스템 콜을 호출하는지 감시하고, 호출하는 시스템 콜에 대해 화면에 출력한다. :: 시스템콜 실패시 strace를 이용하면 어떤 시스템콜이 실패하였는지 쉽게 알아낼 수 있다. :: 예외처리를 해준다면 더욱 쉽게 알아낼 수 있을 것이다. 일단 strace 유틸리티로 추적해볼 프로그램을 만들어보자. /* * gcc scall.c -o scall * 굵게 표시..

Linux/Linux_technic 2010.03.04

리눅스 FILE - System call.

/* * made by so_sal * http://sosal.tistory.com/ */ ※ 파일 다루기 리눅스에서는 모든 것이 파일로 되어 있다.( 약간의 예외를 제외하고 ) 이는 일반적으로 프로그램이 디스크 파일들뿐만 아니라 직렬 포트, 프린터, 그리고 기타 주변장치들을 파일을 사용하는 것과 정확히 동일한 방식으로 사용할 수 있다는 뜻. 특별한 종류의 파일들 예) 디렉터리(Directory) : 디렉터리도 또한 다른 파일들의 inode 번호들과 이름들을 담은 하나의 파일 - inode : 파일은 그 내용 뿐만 아니라 이름과 “관리용 정보”로서의 몇 가지 속성들도 저장되어 있다. 예를 들어 생성/ 수정 일자, 접근 권한, 파일의 길이, 디스크상의 파일의 위치 등.. 이러한 파일의 속성들은 파일의 in..

반응형