• C语言之fileno()函数--获取已经打开的文件的文件描述符(小技巧)


    open函数相关的:  /* open 是系统调用 返回的是文件句柄*/

    #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
    ", fd);  
        fclose(fp);  
        return 0;  
    }
    

      

      

  • 相关阅读:
    工作流调度器Azkaban的安装配置
    MySQL初学入门基础知识-sql语句
    spark大数据生态架构
    快速排序算法——分析及总结 (非常好)
    经典的大数据面试题总结
    flume采集数据报错问题解决
    haproxy官方文档
    问题
    2016/6/7学习记录
    2016
  • 原文地址:https://www.cnblogs.com/cthon/p/9125575.html
Copyright © 2020-2023  润新知