본문으로 바로가기
homeimage
  1. Home
  2. 컴퓨터/프로그래밍
  3. C언어 파일 생성 함수 creat()

C언어 파일 생성 함수 creat()

· 댓글개 · 바다야크

C함수 파일 생성 creat()

파일을 생성합니다. create가 아닙니다. 끝에 E 가 없는 creat입니다. 이미 같은 이름의 파일이 있다면 파일의 내용을 모두 삭제하고 열기를 합니다.

  • 헤더: fcntl.h
  • 형태: int creat ( const char * file, mode_t mode)
  • 인수: char * file 경로명 포함 파일 전체 이름
    mode_t mode 생성할 파일의 접근 권한
  • 반환: int 파일 디스크립터

creat() 함수를 open()함수로 표현하면 아래와 같습니다.

creat( "./test.txt", 0644);
open( "./test.txt", O_WRONLY | O_CREAT | O_TRUNC, 0644) ;

open()함수보다는 간단하게 보이지만 creat()함수 보다는 open()함수를 사용하는 것이 좋습니다. 이유는 open()함수보다 옵션 선택이 고정되어 있기 때문에 매우 제한적이기 때문입니다. 예로 creat()는 쓰기만 가능하기 때문에 읽기까지 가능하게 하려면 close() 다음에 open()을 다시 해 주어야 합니다.

그러나, open()함수를 이용하면 간단합니다.

open( "./test.txt", O_RDWR | O_CREAT | O_TRUNC, 0644) ;

C언어 creat() 함수 예제

예제는 open()함수에서 올려진 예제로 test.txt라는 파일이 없으면 파일을 생성하고 파일 않에 "badayak.com"을 쓰기를 합니다. 그러나 이미 파일이 있다면 프로그램을 종료합니다.

#include <stdio.h>         // puts()
#include <string.h>        // strlen()
#include <fcntl.h>         // O_WRONLY
#include <unistd.h>        // write(), close()

int main()
{
   char  *temp = "badayak.com\n";
   int    fd;

   if ( 0 < ( fd = creat( "./test.txt", 0644))) {
      write( fd, temp, strlen( temp));
      close( fd);
   } else {
      printf( "파일 생성에 실패했습니다.n");
   }
   return 0;
}

C언어 creat() 함수 예제 실행 결과

]$ ./a.out
]$ cat ./test.txt
badayak.com
]$
SNS 공유하기
💬 댓글 개
최근글
이모티콘창 닫기
울음
안녕
감사해요
당황
피폐

이모티콘을 클릭하면 댓글창에 입력됩니다.