C语⾔之fileno()函数--获取已经打开的⽂件的⽂件描述符(⼩
技巧)
open函数相关的:  /* open 是系统调⽤返回的是⽂件句柄*/
fopen函数失败
#include <sys/stat.h>
#include <fcntl.h>
int open(const char *pathname, int flags);
int open(const char *pathname, int flags, mode_t mode);
fopen函数相关的:  /* open是ANSIC标准中的C语⾔库函数,在不同的系统中应该调⽤不同的内核api  */
FILE *fopen(const char *path, const char *mode);
FILE *fdopen(int fd, const char *mode);
FILE *freopen(const char *path, const char *mode, FILE *stream);
函数说明:fileno()⽤来取得参数stream 指定的⽂件流所使⽤的⽂件描述词.
void clearerr(FILE *stream);
int feof(FILE *stream);
int ferror(FILE *stream);
int fileno(FILE *stream);
实例:
#include <stdio.h>
int main(int argc, char **argv)
{
FILE * fp;
int fd;
fp = fopen("/etc/passwd", "r");
fd = fileno(fp);
//等价于
  //fd=open("etc/passwd",RD_ONLY);
printf("fd=%d\n", fd);
fclose(fp);
return 0;
}

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。