Linux文件锁的问题!
我在别人的程序上继续开发,我现在碰到一个问题就是必须给一个文件加锁,采用fcntl函数,其中一个参数是fd,文件描述符。而这个程序用的是fopen函数打开文件,得到File *fp,现在的问题是如何通过fp得到这个打开文件的描述符?我看到谭浩强的那本C语言上说,在Turbo C下,File结构有一个成员变量就是fd,我不知道现在Linux下File结构还是这样吗? 问题点数:20、回复次数:4Top
1 楼redearthYT()回复于 2006-10-03 21:02:00 得分 0
fopen() 返回的就是文件描述符,即fp,莫非你没试着用fp?Top
2 楼absurd(absurd)回复于 2006-10-03 22:18:38 得分 10
int fileno(FILE *stream);Top
3 楼lihong2()回复于 2006-10-04 14:22:33 得分 0
fopen() 返回的就是文件描述符,即fp,莫非你没试着用fp?
==================================================
老大,fopen返回的是一个FILE的数据结构,后来我查了GNU C library才从libio.h中找到FILE对应的结构是_IO_FILE,其中有个成员变量是fileno才是文件描述符,所以你可以用fp->fileno来获取,也可以像3楼用fileno函数来获取。这里谢谢3楼!Top
4 楼strtok()回复于 2006-10-06 16:59:15 得分 10
man 3 filenoTop




