나는이 FILE *
호출에 의해 반환을 fopen()
. 전화를 걸려면 파일 설명자를 가져와야 fsync(fd)
합니다. 파일 포인터에서 파일 디스크립터를 얻는 기능은 무엇입니까?
답변
올바른 기능은 int fileno(FILE *stream)
입니다. 에서 찾을 수 있으며 <stdio.h>
POSIX 표준이지만 표준 C는 아닙니다.
답변
fileno(FILE *)
파일 디스크립터를 리턴 하더라도 stdio의 버퍼를 우회하지 않도록주의하십시오. 버퍼 데이터 (읽기 또는 언 플러시 쓰기)가있는 경우 파일 디스크립터에서 읽기 / 쓰기를 수행하면 예기치 않은 결과가 발생할 수 있습니다.
부수적 인 질문 중 하나에 답하고 파일 설명자를 FILE 포인터로 변환하려면 다음을 사용하십시오. fdopen(3)