반응형
파일 포인터(FILE*fp)를 파일 기술자(int fd)로 변환하려면 어떻게 해야 합니까?
나는 가지고 있다FILE *
에 대한 콜에 의해 반환됩니다.fopen()
파일 디스크립터를 가져와야 합니다.fsync(fd)
파일 포인터에서 파일 설명자를 가져오는 기능은 무엇입니까?
적절한 기능은int fileno(FILE *stream)
에 기재되어 있습니다.<stdio.h>
는 POSIX 표준이지만 표준 C는 아닙니다.
라 할지라도fileno(FILE *)
는 파일 기술자를 반환할 수 있으므로 stdio의 버퍼를 바이패스하지 않도록 매우 주의하십시오.버퍼 데이터(읽기 또는 플러시되지 않은 쓰기)가 있는 경우 파일 설명자에서 읽기/쓰기를 수행하면 예기치 않은 결과가 발생할 수 있습니다.
사이드 질문 중 하나에 응답하고 파일 설명자를 FILE 포인터로 변환하려면fdopen(3)
fd = _fileno(fp); // Probably the best way
fd = fp->_file; // direct from the FILE structure, member
typedef struct _iobuf {
char* _ptr;
int _cnt;
char* _base;
int _flag;
int _file;
int _charbuf;
int _bufsiz;
char* _tmpfname; } FILE;
언급URL : https://stackoverflow.com/questions/3167298/how-can-i-convert-a-file-pointer-file-fp-to-a-file-descriptor-int-fd
반응형
'source' 카테고리의 다른 글
C복소수 및 프린트 f (0) | 2022.08.30 |
---|---|
익명 클래스에서 최종 변수만 액세스할 수 있는 이유는 무엇입니까? (0) | 2022.08.30 |
void*의 의미와 사용방법 (0) | 2022.08.30 |
컴포넌트 method()에서 Vuex $store.getters에 액세스합니다. (0) | 2022.08.30 |
메서드에 대한 Java 변수 인수 수 (0) | 2022.08.29 |