관련글: http://joinc.co.kr/modules.php?op=modload&name=Forum&file=viewtopic&topic=31222&forum=1
file descriptor 번호 0, 1, 2 의 의미에 대한 이해를 위한 일반적인 예제입니다.
file descriptor 번호 0, 1, 2 의 의미에 대한 이해를 위한 일반적인 예제입니다.
| 코드: |
| /*
Copyright (C) Information Equipment co.,LTD All rights reserved. Code by JaeHyuk Cho <mailto:minzkn@infoeq.com> CVSTAG="$Header$" */ #include <stdio.h> #include <unistd.h> #if !defined(STDIN_FILENO) # warning STDIN_FILENO not defined, need unistd.h # define STDIN_FILENO (0) #endif #if !defined(STDOUT_FILENO) # warning STDOUT_FILENO not defined, need unistd.h # define STDOUT_FILENO (1) #endif int (main)(void) { int s_read_bytes; unsigned char s_buffer[ 4 << 10 ]; if((isatty(STDIN_FILENO) == 1) && isatty(STDOUT_FILENO) == 1) { do { s_read_bytes = (int)read(STDIN_FILENO, (void *)(&s_buffer[0]), (size_t)sizeof(s_buffer)); if(s_read_bytes <= 0)break; if(write(STDOUT_FILENO, (void *)(&s_buffer[0]), s_read_bytes) != s_read_bytes) { (void)fputs("터미날이 이상해요. 출력을 제대로 수행하지 못했습니다.\n", stderr); break; } }while(1); } else (void)fputs("터미날을 사용할수 없어요. 터미날이 계승되지 않은 경우로 사료됩니다.\n", stderr); return(0); } /* vim: set expandtab: */ /* End of source */ |




댓글을 달아 주세요