C語言文件指針與文件描述符之間可以相互轉換:
這要通過fdopen和fileno兩個函數實現。它們都包含在頭文件stdio.h中。
fdopen的原型: FILE * fdopen(int filedes, const char *opentype);
第一個參數filedes是一個打開的文件描述符,opentype是表示打開方式的字符串,和fopen函數具有相同的取值,比如"w"或"w+"等。但是你必須保證該字符串的描述和文件實際的打開方式是匹配的。函數fopen()就是返回打開文件的指針;如果操作失敗,返回空指針null。
把文件流指針轉換成文件描述符用fileno函數,其原型為:
int fileno(FILE *stream);
它返回和stream文件流對應的文件描述符。如果失敗,返回-1。