설명

open() 함수로 열기를 한 파일에 쓰기를 합니다. open()함수는 fcntl.h 에 정의 되어 있지만 write(), read(), close()는 unistd.h에 정의 되어 있습니다.

헤더 unistd.h
형태 ssize_t write (int fd, const void *buf, size_t n)
인수 int fd 파일 디스크립터
void *buf 파일에 쓰기를 할 내용을 담은 버퍼
size_t n 쓰기할 바이트 개수
반환 ssize_t 정상적 쓰기를 했다면 쓰기를 한 바이트 개수를, 실패했다면 -1을 반환
예제

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

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

int main()
{
   char  *temp = "forum, falinux.comn";
   int    fd;

   if ( 0 < ( fd = open( "./test.txt", O_WRONLY ¦ O_CREAT ¦ O_EXCL, 0644)))
   {
      write( fd, temp, strlen( temp));
      close( fd);
   }
   else
   {
      printf( "파일 열기에 실패했습니다.\n");
   }
   return 0;
}
]$ ./a.out
]$ cat ./test.txt
forum.falinux.com ]$ ./a.out 파일 열기에 실패했습니다. ]$