Linux2010.03.31 11:38
fileno() 는 fp를 fd로 변환해주고
fdopen()은 fd를 fp로 변환해준다.

int fileno(FILE *stream);
FILE *fdopen(int fildes, const char *mode);

[링크 : http://linux.die.net/man/3/fileno]
[링크 : http://linux.die.net/man/3/fdopen]

아무튼 원하는 파일이나, stdin/out/err에 대한 fd를 얻어온뒤
fcntl() 함수를 이용하여 변경하면 된다.

fctnl(fd, F_SETFL, O_NONBLOCK);
(테스트 안해봣음!)

int fcntl(int fd, int cmd, long arg);

F_SETFL
    Set the file status flags to the value specified by arg. File access mode (O_RDONLY, O_WRONLY, O_RDWR) and file creation flags (i.e., O_CREAT, O_EXCL, O_NOCTTY, O_TRUNC) in arg are ignored. On Linux this command can only change the O_APPEND, O_ASYNC, O_DIRECT, O_NOATIME, and O_NONBLOCK flags.

[링크 : http://linux.die.net/man/2/fcntl]
[링 크 : http://www.falinux.com/win/study/06/devicedriver11.html]

Posted by 구차니
TAG , , , ,

댓글을 달아 주세요

  1. 비밀댓글입니다

    2010.03.31 12:07 [ ADDR : EDIT/ DEL : REPLY ]
  2. ㅍㅎㅎㅎ 날탱구리님~~ 안녕하세요! ㅋㅋㅋ
    새로 시작하는 블로그인가봐요~~~
    그런거죠?

    2010.03.31 14:19 신고 [ ADDR : EDIT/ DEL : REPLY ]
  3. 비밀댓글입니다

    2010.03.31 14:22 [ ADDR : EDIT/ DEL : REPLY ]
    • 헐! 원래 nallo(날로) 라고 하려다가 어색해서 그냥 nall로 했는데 ㅋ

      마침 일하기가 싫어서 이러고 있어요 ㅋ

      2010.03.31 14:25 신고 [ ADDR : EDIT/ DEL ]
  4. 비밀댓글입니다

    2010.03.31 14:23 [ ADDR : EDIT/ DEL : REPLY ]