'stderr'에 해당되는 글 1건

관련글: http://joinc.co.kr/modules.php?op=modload&name=Forum&file=viewtopic&topic=31222&forum=1

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 */

크리에이티브 커먼즈 라이센스
Creative Commons License
Posted by minzkn

트랙백 주소 :: http://blog.minzkn.com/trackback/115

댓글을 달아 주세요