사용한 명령어 전체 보기

 

/* mycat program, by mjson. jinn_o@naver.com */
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <fcntl.h>
#include <errno.h>
#define MAX_BUF 64

int main(int argc,char *argv[])
{
    int fd,read_size,write_size;
    char buf[MAX_BUF];
    
    if(argc!=2){
        printf("USAGE: %s file_name\n",argv[0]);
        exit(-1);
    }
    fd=open(argv[1],O_RDONLY);
    if(fd<0){
        // open error handling
    }
    while(1){
        read_size=read(fd,buf,MAX_BUF)'
        if(read_size==0)
            break;
        write_size=write(STDOUT_FILENO,buf,read_size);
    }
    close(fd);
}

 일반적으로 시스템 콜이 실패할 경우 그 원인을 나타내는 정수가 전역변수 errno에 설정된다. errno는 'Error Number(No)'의 약자다. errno에는 파일이 존재하지 않을 때 발생하는 ENOENT나, 인자의 값이 올바르지 않을 때 발생하는 ELNVAL 등의 값이 대입된다. 각 시스템 콜을 사용할 때 발생할 가능성이 있는 errno 값은 man 페이지에서 확인할 수 있다.

+ Recent posts