리눅스 파일입출력 예제

/dev/fd의 Linux 구현은 예외입니다. 파일 설명자가 기본 물리적 파일을 가리키는 기호 링크로 매핑됩니다. 예를 들어 /dev/fd/0을 열면 표준 입력과 연결된 파일을 실제로 열고 있습니다. 따라서 반환되는 새 파일 설명자의 모드는 /dev/fd 파일 설명자의 모드와 관련이 없습니다. 일반 파일의 경우 쓰기 작업은 파일의 현재 오프셋에서 시작됩니다. 파일을 열 때 O_APPEND 옵션을 지정한 경우 각 쓰기 작업 전에 파일의 오프셋이 파일의 현재 끝으로 설정됩니다. 쓰기가 성공하면 파일의 오프셋은 실제로 작성된 바이트 수에 따라 증가합니다. 함수 fputs()는 문자열 s를 fp에서 참조하는 출력 스트림에 씁니다. 성공에 비음수 값을 반환, 그렇지 않으면 EOF는 오류의 경우 반환됩니다. int fprintf (FILE * fp, const char * format, …) 함수를 사용하여 문자열을 파일에 쓸 수 있습니다. 다음 예제를 시도해 보십시오. O_CREAT 및 O_EXCL 옵션을 모두 지정하면 파일이 이미 있는 경우 open이 실패합니다.

파일의 존재 와 파일의 생성에 대 한 확인은 원자성 작업으로 수행 되었다. 특정 명령이나 명령줄에서 수행하려는 작업(예: “대문자로 시작하는 디렉터리에서 모든 파일 삭제”)에 대한 검색은 명령줄을 사용하여 특정 작업을 수행해야 할 때 유용할 수 있습니다. Linux 환경의 입력 및 출력은 세 개의 스트림에 분산됩니다. 이러한 스트림은 파일의 오프셋이 파일의 현재 크기보다 클 수 있으며, 이 경우 다음 쓰기에서 파일이 파일을 확장합니다. 이를 파일에 구멍을 만드는 것으로 하며 허용됩니다. 기록되지 않은 파일의 모든 바이트는 0으로 다시 읽습니다(od(1) 명령으로 확인할 수 있음). 아래는 파일에서 하나의 문자를 읽을 수있는 가장 간단한 기능입니다 주어진 – 당신은 새로운 파일을 만들거나 기존 파일을 엽니 다 fopen () 함수를 사용할 수 있습니다. 이 호출은 스트림을 제어하는 데 필요한 모든 정보를 포함하는 FILE 형식의 개체를 초기화합니다. 이 함수 호출의 프로토타입은 다음과 같습니다 – 기존 파일 설명자는 다음 기능 중 하나에 의해 복제됩니다 : 그림 3.7은 두 개의 서로 다른 파일이 열려있는 단일 프로세스에 대해이 세 테이블의 그림 배열을 보여줍니다 : 하나의 파일이 열려 있습니다. 표준 입력(파일 설명자 0)과 다른 하나는 표준 출력(파일 설명자 1)에서 열립니다. 대부분의 최신 파일 시스템은 파일 이름에 대해 최대 255자를 지원합니다. 파일을 읽으려면 먼저 모드를 사용하여 파일을 열어야합니다(예: 파일을 읽은 다음 “r” 모드에서 만 열려면).

파일 열기 중에 선택한 모드에 따라 파일에서 특정 작업을 수행할 수 있습니다.