/*
* made by so_sal
* http://sosal.tistory.com/
*/
※ 파일 다루기
리눅스에서는 모든 것이 파일로 되어 있다.( 약간의 예외를 제외하고 ) 이는 일반적으로 프로그램이 디스크 파일들뿐만 아니라 직렬 포트, 프린터, 그리고 기타 주변장치들을 파일을 사용하는 것과 정확히 동일한 방식으로 사용할 수 있다는 뜻.
특별한 종류의 파일들 예)
디렉터리(Directory) : 디렉터리도 또한 다른 파일들의 inode 번호들과 이름들을 담은 하나의 파일
- inode : 파일은 그 내용 뿐만 아니라 이름과 “관리용 정보”로서의 몇 가지 속성들도 저장되어 있다. 예를 들어 생성/ 수정 일자, 접근 권한, 파일의 길이, 디스크상의 파일의 위치 등.. 이러한 파일의 속성들은 파일의 inode 에 저장된다. 시스템은 파일의 inode의 번호를 사용
/dev/null : 이 파일은 널 장치이다. ::
빈 파일을 만들거나, 원치 않는 출력이 일어나지 않게 사용 하는 등에 쓰임
ex) cp /dev/null empty_file = 빈파일 생성
ex) find / -perm -4000 2>/dev/null
// ftz.hackerschool.org에 멋지게 사용할 수 있는 명령어죠 ^^
저수준 파일 접근( 시스템콜함수를 이용한 파일 접근 )
저수준 파일 접근을 위한 시스템콜함수의 예)
open : 파일이나 장치를 연다.
read : 열린 파일이나 장치에서 자료를 읽는다.
write : 파일이나 장치에 자료를 기록한다.
close : 파일이나 장치를 닫는다.
시스템 호출( system call ) : 운영체제가 제공하는 서비스에 대한 프로그래밍 인터페이스
시스템 호출의 기능
1. 사용자 모드에 있는 응용 프로그램이 커널의 기능을 사용할 수 있도록 하는 것.
2. 시스템 콜을 부르면 사용자 모드에서 커널 모드로 바뀐다.
3. 커널에서 시스템 콜을 처리하면 커널 모드에서 사용자 모드로 바뀌어 작업을 계속한다.
파일 서술자( file descriptor ) : 특정 파일에 접근하기 위한 추상적인 키
프로그램에서 파일이나 장치에 접근하는 데 사용하는 정수 값 ( 자료형 int )
ex) int fp = open(...);
모든 프로세스가 갖추어야 하는, 갖추고 있는 파일 서술자는 다음과 같이 세 개가 있다.
정수값 |
이름 |
0 |
표준 입력( stdin ) /dev/stdin |
1 |
표준 출력( stdout ) /dev/stdout |
2 |
표준 오류( stderr ) |
#include <unistd.h> // write. read. open. 함수는 unistd.h 헤더파일에 있습니다.
FILE 게시물들은
begining Linux programing.
Linux 언쉬리드' 를 참고하였습니다.
'Linux > Linux_programing' 카테고리의 다른 글
Socket - 02. Server socket (0) | 2009.10.03 |
---|---|
리눅스 Socket - socket(), sockaddr (0) | 2009.09.28 |
리눅스 FILE - open(), close() 시스템콜 (1) | 2009.09.28 |
리눅스 FILE - read() 시스템콜 (1) | 2009.09.27 |
리눅스 FILE - Write() 시스템콜 (1) | 2009.09.27 |