#포함하다 #포함하다 int open(const char *path, int access(, unsigned mode)); |
Open 함수는 경로로 지정된 파일을 엽니다.
주어진 액세스 인수에 따라 읽기 또는 쓰기 작업을 준비합니다.
access는 비트 OR 연산을 수행하며 다음 기호 상수를 사용할 수 있습니다.
이 리터럴은 헤더 파일에 있습니다.
O_RD만 | 읽다 |
오_잘못 | 쓰다 |
O_RDWR | 읽고 쓰기 |
O_APPEND | 첨가물 |
O_CREATE | 파일이 존재하지 않으면 새 파일이 생성됩니다. , 이미 존재하는 경우 효과 없음. |
O_TRUNC | 파일이 존재하는 경우 기존 파일의 길이 0~와 관련이 있다. |
O_EXCL | O_CREATE함께 사용, 파일이 이미 있으면 오류가 반환됩니다. . |
O_BINARY | 바이너리 모드로 파일 열기. |
O_TEXT | 테스트 모드에서 파일 열기. |
입장 싸움에서 O_CREATE 플래그를 사용하는 경우
.
S_IWRITE | 쓰기 권한 |
S_IREAD | 운영 허가 읽기 |
S_IREAD | S_IWRITE | 읽기 및 쓰기 권한 |
반환 값
열려 있는 함수의 반환 값은.
작업이 성공한 경우 음수가 아닌 정수(파일 핸들)보고, 파일의 위기는 시작을 가리킬 것입니다.
오류가 발생했을 때 -하나보고, 글로벌 변수 오류 번호다음 중 하나로.
에노엔트 | 경로 또는 파일을 찾을 수 없음 |
엠파일 | 너무 많은 파일이 열려 있습니다. |
EACCES | 취업 허가 거부 |
AVACC | 유효하지 않은 입장 암호 |
참조: 열기, 닫기, 읽기, 쓰기, lseek, _open, _close, _read, _write
#include <stdio.h>
#include <string.h>
#include <fcntl.h>
#include <sys/stat.h>
#include <io.h>
int main()
{
int handle;
char s() = "Opens a file.";
handle = open("open.txt", O_WRONLY);
if (handle == -1)
{
perror("Error: ");
return 1;
}
write(handle, s, strlen(s));
close(handle);
return 0;
}
반응형
Visual Studio에서는 _open, _write 및 _read 함수를 사용해야 합니다.
#define _CRT_SECURE_NO_WARNINGS // Visual Studio
#include <stdio.h>
#include <string.h>
#include <fcntl.h>
#include <sys/stat.h>
#include <io.h>
int main()
{
int handle;
char s() = "Opens a file.";
handle = _open("open.txt", O_CREAT | O_TEXT);
if (handle == -1)
{
perror("Error: ");
return 1;
}
_write(handle, s, strlen(s));
_close(handle);
return 0;
}