#include <fcntl.h>
#include <unistd.h>
#define BUFFSIZE 1024

main()
{
   int fd1, fd2;
   ssize_t n; //ssize_t는 인트정도로 보면된다.
   char buf[BUFFSIZE];

   /* jkim 파일을 읽기 전용으로 열기. fd1은 jkim을 의미 */
   fd1 = open("jkim", O_RDONLY);
   /* kang 파일을 쓰기 전용으로 열기. fd2는 kang을 의미 */
   fd2 = open("kang", O_WRONLY);
   /* fd1 파일에서 문자를 BUFFSIZE 크기만큼 읽어 buf에 저장.
      read 함수에서도 파일 식별자를 사용하고 반환값은 실제로 읽은 바이트 수 */
   n = read(fd1, buf, BUFFSIZE);
   /* buf에 있는 내용을 n바이트만큼 fd2 파일에 저장.
      write 함수에서도 파일 식별자를 사용 */
   write(fd2, buf, n);
   /* fd1 파일 닫기 */
   close(fd1);
   close(fd2);
}
==========================================================
#include <fcntl.h>

main()
{
   int fd;
 
   /* jkim 파일을 읽기 전용으로 열기.
     만약 호출에 실패하게 되면 -1이 반환되므로 if 조건이 참이 됨 */
   if ((fd = open("jkim", O_RDONLY)) == -1) {
      perror("open failed"); //perror함수를 이용해서 에러메세지를 출력해주고있다.
      exit(1);
   }
   /* fd 파일 닫기 */
   close(fd);
   exit(0);
}
===========================================================
#include <fcntl.h>

main()
{
   int fd;

   /* 현재 디렉토리에 jkim 파일이 있으면 읽기 전용으로 열고,
      없으면 현재 디렉토리에 0바이트 크기의 jkim을 생성하고 이를 연다.
      생성된 파일의 접근 권한 정보는 0644 */
   if ((fd = open("jkim", O_RDONLY | O_CREAT, 0644)) == -1) {
      perror("open failed");
      exit(1);
   }
   close(fd);
   exit(0);
}

      c 언어  |  2007. 9. 13. 10:15



sokoban's Blog is powered by Daum & Tattertools