本文介绍了什么是文件的内容psented重新$ P $ *的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有这个计划。
的#include<&stdio.h中GT;
#包括LT&;&unistd.h中GT;
#包括LT&; SYS / socket.h中>
#包括LT&;&fcntl.h GT;INT主要(无效)
{
FILE * F =的fopen(/用户/用户/ a.cc,RB);
的printf(%I \\ N,F); // 1976385616
的printf(%I \\ N,* F); // 1976385768 INT的sockfd =插座(AF_UNIX,SOCK_STREAM,0);
的printf(%I \\ N的sockfd); // 4 FCLOSE(F);
接近(的sockfd); INT FD =打开(/用户/用户/ a.cc,O_TRUNC | O_WRONLY,0);
的printf(%I \\ N(INT)FD); // 3
关闭(FD);
}
我知道 3
和 4
重新presents 0,1,2作为文件描述符分别为标准输入
,标准输出
和标准错误
。显然的fopen
不使用文件描述符。
这是什么 FILE *
重新present的价值?如何的fopen
如果不与文件描述符?
解决方案
It is a pointer to FILE
structure, for glibc its definition is here. Which, among other things, contains the file descriptor. You can get the file descriptor from FILE*
using POSIX fileno
function.
For more details you may like having a look into Interaction of File Descriptors and Standard I/O Streams.
这篇关于什么是文件的内容psented重新$ P $ *的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!