• fileno FILEHANDLE

这个函数返回在一个文件句柄下面的文件描述符。如果该文件句柄没有 open,那么 fileno 返回 undef。文件描述符是一个很小的,非负整数,比如 0 或 1,分别对应 STDIN 和 STDOUT,后者是符号。糟糕的是,操作系统可不认得你这些酷酷的符号。它只会用这样的小小的文件数字思维来打开文件,并且尽管 Perl 通常会自动为你做转换,但是偶尔你还是需要知道实际的文件描述符。

因此,举例来说,fileno 函数对于为select 构造位图以及在实现了 syscall(2) 的情况下传递某些晦涩的系统调用来说是非常有用的。它还可以用于检查 open 函数给你的文件描述符是不是你想要的那个,以及判断两个文件句柄是否在使用同一个文件描述符。

   if (fileno(THIS) == fileno(THAT) ) {print "THIS and THAT are dups\n";}

如果 FILEHANDLE 是一个表达式,那么该值就会被当作一个间接的文件句柄,通常是它的名字或者一个指向某些构成一个文件句柄对象的引用。

一个警告:在程序的整个生命期里都不要依赖 Perl 文件句柄和数字文件描述符之间的关联关系。如果一个文件关闭以后重新打开,那么文件描述符可能改变。Perl 在保证某些文件描述符不会因为对它们的 open 失败而丢失的时候碰到了一些麻烦,它现在只能对那些不超过当前特殊变量 $^F($SYSTEM_FD_MAX)的当前值(缺省是 2)的文件描述符保证这一点。尽管文件句柄 STDIN, STDOUT,和 STDERR 从文件描述符 0,1,和 2 开始(Unix 标准传统),但如果你非常随意地打开和关闭它们的话,那么它们都有可能改变。只要你总是在关闭以后马上重新打开,那么你在 0,1,和 2 上不会碰到麻烦。在 Unix 系统上,基本规则是先用最小的描述符,而那个会是你刚刚关闭的那个。

函数说明(fileno)相关推荐

  1. C语言文件操作函数大全

    unix中一切皆文件,所以文件操作至关重要! clearerr(清除文件流的错误旗标) 相关函数 feof 表头文件 #include<stdio.h> 定义函数 void clearer ...

  2. C语言文件操作函数大全(看到总结的真的很好,就转载贡献给大家了)

    C语言文件操作函数大全 clearerr(清除文件流的错误旗标) 相关函数 feof 表头文件 #include<stdio.h> 定义函数 void clearerr(FILE * st ...

  3. C语言函数操作大全----(超详细)

    fopen(打开文件) 相关函数 open,fclose 表头文件 #include<stdio.h> 定义函数 FILE * fopen(const char * path,const ...

  4. linux常用c函数(中文版)

    都是linux的c函数东西略多,用页面搜索来查找吧. << Back to man.ChinaUnix.net isalnum(测试字符是否为英文或数字) 相关函数 isalpha,isd ...

  5. C语言API函数大全(转载)

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/u010258235/article/d ...

  6. python的fopen函数_linux c函数(fgets,fputs,fopen)

    clearerr(清除文件流的错误旗标) 相关函数 feof 表头文件 #include定义函数 void clearerr(FILE * stream); 函数说明 clearerr()清除参数st ...

  7. Linux C语言 fileno(返回文件流所使用的文件描述词)

    fileno(返回文件流所使用的文件描述词) 相关函数 open,fopen 表头文件 #include<stdio.h> 定义函数 int fileno(FILE * stream); ...

  8. day34 异常处理、断言、socket之ftp协议

    Python之路,Day20 = 异常处理.断言.socket之ftp协议 参考博客:http://www.cnblogs.com/metianzing/articles/7148191.html 1 ...

  9. python基础之socket编程

    阅读目录 一 客户端/服务器架构 二 osi七层 三 socket层 四 socket是什么 五 套接字发展史及分类 六 套接字工作流程 七 基于TCP的套接字 八 基于UDP的套接字 九 粘包现象 ...

最新文章

  1. python3.X 使用schedule实现定时任务
  2. 超适合新手的Oracle查询语句
  3. 《openssl编程》之openssl简介
  4. 禅道开源版用户手册_自动化建模 | H2O开源工具介绍
  5. C++this指针的用途
  6. oracle 几个字段中某个字段大于0其他字段不再进行统计?_如何深入理解MySQL 8.0直方图?...
  7. c++能干什么_「CG原画插画教程」学画画到底能干什么?
  8. 在Linux下安全删除eSATA设备
  9. Spring总结七:AOP动态代理的实现
  10. mescroll报错
  11. ubuntu linux 批量删除文件
  12. 金融科技——预测银行贷款
  13. matlab 矩阵位移法编程 结构力学,matlab-矩阵位移法编程-结构力学.doc
  14. 基于Python的个人博客系统设计与实现 报告+项目源码
  15. 养胃有道——送给胃不好的人
  16. 数据仓库十大主题;TeraData金融数据模型
  17. html按钮和多选框
  18. 微服务之API网关:Kong:概要与安装
  19. 七倍压电路图_倍压整流电路图大全(九款倍压整流电路设计原理图详解) - 全文...
  20. 讲一个api网页全部保存到本地_WebRTC在网页端音视频通话的技术实践

热门文章

  1. 订阅Linux内核的邮件列表
  2. 用户留存率问题计算详解
  3. 对逻辑回归损失函数进行求导
  4. 微信小程序--微信支付
  5. plsql多表联查update
  6. 深度好文-如何测试云硬盘
  7. 第952期机器学习日报(2017-04-27)
  8. linux关闭无响应文件夹,4种强制关闭Ubuntu中无响应应用程序的方法
  9. LINUX应用编程:pid和ppid
  10. 输入URL之后会执行什么流程?