求教:C语言中的fileno是什么意思
答案:2 悬赏:10 手机版
解决时间 2021-02-26 17:50
- 提问者网友:树红树绿
- 2021-02-26 01:59
求教:C语言中的fileno是什么意思
最佳答案
- 五星知识达人网友:一把行者刀
- 2021-02-26 02:11
1.当打开或创建一个文件的时候,内核向进程返回一个文件描述符..比如用open函数..creat函数等等.
它并非是定义的.
但是对于标准输入,输出,和错误.其分别用0,1,2标识,同时它们又有相应的常量STDIN_FILENO,STDOUT_FILENO,STDERR_FILENO
2.不唯一.
比如有两个进程.一个读,一个写的.它们打开同一文件,那么对于这个文件来说就有两个文件描述符.
但文件并不知道自己的文件描述符,因为文件描述符是进程所拥有的.
3.struct stat描述了文件的属性..诸如是什么类型的文件,为谁所有,属于哪个组,何时被修改过等等.
它并非是定义的.
但是对于标准输入,输出,和错误.其分别用0,1,2标识,同时它们又有相应的常量STDIN_FILENO,STDOUT_FILENO,STDERR_FILENO
2.不唯一.
比如有两个进程.一个读,一个写的.它们打开同一文件,那么对于这个文件来说就有两个文件描述符.
但文件并不知道自己的文件描述符,因为文件描述符是进程所拥有的.
3.struct stat描述了文件的属性..诸如是什么类型的文件,为谁所有,属于哪个组,何时被修改过等等.
全部回答
- 1楼网友:北方的南先生
- 2021-02-26 03:11
#include
#include
int main()
{
char outfile[20];
file* ofp;
int fn;
file* kk;
int sz;
scanf("%s",outfile);//输入d:\\hu.cod
ofp=fopen(outfile,"r");
if(!ofp) {
fprintf(stderr, "file not found.\n");
return 0;
}
fn=fileno(ofp);
sz=_filelength(fn);//求文件大小
printf("@@@@@@@@@文件2大小为:%d字节@@@@@\n",sz);
fclose( ofp );//这个去掉,大小也是一样的。
kk=fopen(outfile,"rb");
if(!kk) {
fprintf(stderr, "file zhandian not found.\n");
return 0;
}
fn=fileno(kk);
sz=_filelength(fn);
printf("@@@@@@@@@文件2大小为:%d字节@@@@@\n",sz);
return 0;
}
你看看这个,我运行的是大小一样,你运行试试,不懂继续问,请采纳!
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯