c open 예제

By 2019. augusztus 2. Egyéb kategória No Comments

예를 들어 사용자가 시스템에서 존재하지 않는 파일을 참조하는 해당 이름으로 기호 링크를 만드는 경우 사용자의 홈 디렉터리와 같이 사용자가 쓰기 쉬운 디렉터리에서 예측 가능한 이름으로 파일을 만들어야 하는 권한 있는 응용 프로그램이 손상될 수 있습니다. 디렉터리. 사용자가 파일의 내용에 영향을 줄 수 있는 경우 사용자는 시스템에서 해석할 새 시스템 구성 또는 스풀 파일을 만들어 시스템을 손상시킬 수 있습니다. 존재하지 않는 파일을 참조하는 기호 링크에 대한 테스트는 새 파일을 만들 때 원자성이어야 합니다. 경로가 의사 터미널 장치의 마스터 측에 이름을 지정하면 open()이 슬레이브 면을 잠그지 여부를 지정하지 않으므로 열 수 없습니다. 준수 응용 프로그램은 슬레이브 측을 열기 전에 unlockpt()를 호출해야합니다. 파일 테이블 항목: 파일 테이블 항목은 파일 열기 요청 프로세스 요청 및 이러한 항목 파일 위치를 유지 하는 경우 생성 되는 열린 파일에 대 한 구조 In-memory 서로게이트입니다. off_t 형식의 개체에서 올바르게 나타낼 수 있는 가장 큰 값은 열린 파일 설명에서 오프셋 최대값으로 설정됩니다. O_CREAT이 설정되고 파일이 이전에 존재하지 않는 경우 성공적으로 완료되면 open() 파일의 st_atime, st_ctime 및 st_mtime 필드와 상위 디렉터리의 st_ctime 및 st_mtime 필드를 업데이트하도록 표시해야 합니다. open() 호출이 성공하면 파일을 열어 작성합니다.

일반 파일을 만드는 open()을 사용하는 것은 creat()를 사용하는 것이 좋습니다. 이 자습서에서는 파일 IO, 텍스트 및 바이너리, C에서 fopen, fwrite 및 fread, fprintf, fscanf, fgetc 및 fputc를 사용 하 여 수행하는 방법을 배웁니다. 비차단을 지원하는 블록 특수 또는 문자 특수 파일을 여는 경우: 다음 예제에서는 open() 함수를 사용하여 LOCKFILE 파일을 만들고 작성을 위해 엽니다. open() 함수는 O_EXCL 플래그를 지정하므로 파일이 이미 있는 경우 호출이 실패합니다. 이 경우 프로그램은 다른 사람이 암호 파일을 업데이트하고 종료한다고 가정합니다. O_NOCTTY 플래그가 추가되어 응용 프로그램이 터미널 파일을 여는 부작용으로 제어 터미널을 실수로 획득하지 않도록 했습니다. IEEE Std 1003.1-2001의 이 부피는 제어 터미널을 획득하는 방법을 지정하지 않지만 O_NOCTTY 플래그가 설정되지 않은 경우 구현에서 이를 제공할 수 있으며 IEEE Std 1003.1-2001의 기본 정의 볼륨에 지정된 기타 조건이 있습니다. , 제 11 장, 일반 터미널 인터페이스가 충족됩니다. O_NOCTTY 플래그는 열려 있는 파일이 터미널 장치가 아닌 경우 효과적인 no-op입니다. open() 함수는 파일과 파일 설명자 간의 연결을 설정합니다.