C_C++/C_라이브러리_함수

(C언어) creat: 새 파일 생성하거나 기존 파일을 덮어쓴다

고니자니 2023. 2. 2. 13:35
반응형

#creat

 

#include <sys/stat/h>
int creat(const char *path, int amode);

creat 함수는 path로 지정된 파일을 새로 생성하거나 이미 존재하는 파일은 다시 쓰기 위해 준비합니다.

creat에 의해 작성되는 파일은 전역변수 _fmode에 의해 지정되는 변환모드(O_TEXT, O_BINARY)에서 작성됩니다.

파일이 이미 존재하고 쓰기가 가능한 파일은 크기 0으로 다시 작성되고, 파일 속성을 변하지 않습니다.

만약, 기존 파일이 읽기 전용 속성일 경우에는 creat  함수는 실패하며 파일의 크기는 변하지 않습니다.

이 함수는 파일 작성에 성공하면 handle을 반환하고, 실패하면 -1을 반환합니다.

 

인수 amode는 다음 중 하나의 값입니다 - <sys/stat.h> 헤더에 정의되어 있습니다.

amode 값 설명
S_IWRITE 쓰기
S_IREAD 읽기
S_IREAD | S_IWRITE 읽기와 쓰기

 

#include <stdio.h>
#include <string.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <stdlib.h>

int main(void)
{
	int handle;
	char buffer[] = "Hello, C language.";
	
	// 기본 텍스트 모드를 이진모드로 변경합니다.
	_fmode = O_BINARY;

	// 읽기와 쓰기가 가능한 파일을 생성합니다.
	handle = creat("test.bin", S_IREAD | S_IWRITE);
	
	// 파일에 buffer의 내용을 씁니다.
	write(handle, buffer, strlen(buffer));

	close(handle);

	return 0;
}

 

 

비주얼스튜디오에서는 다음 한 줄을 코드의 맨 위에 삽입해야 합니다.

#define _CRT_SECURE_NO_WARNINGS  // Visual Studio

 

 

반응형