函数说明(fileno)
2014-07-02 16:02
316 查看
fileno FILEHANDLE
这个函数返回在一个文件句柄下面的文件描述符。如果该文件句柄没有 open,那么 fileno 返回 undef。文件描述符是一个很小的,非负整数,比如 0 或 1,分别对应 STDIN 和 STDOUT,后者是符号。糟糕的是,操作系统可不认得你这些酷酷的符号。它只会用这样的小小的文件数字思维来打开文件,并且尽管 Perl 通常会自动为你做转换,但是偶尔你还是需要知道实际的文件描述符。
因此,举例来说,fileno 函数对于为select 构造位图以及在实现了 syscall(2) 的情况下传递某些晦涩的系统调用来说是非常有用的。它还可以用于检查 open 函数给你的文件描述符是不是你想要的那个,以及判断两个文件句柄是否在使用同一个文件描述符。
如果 FILEHANDLE 是一个表达式,那么该值就会被当作一个间接的文件句柄,通常是它的名字或者一个指向某些构成一个文件句柄对象的引用。
一个警告:在程序的整个生命期里都不要依赖 Perl 文件句柄和数字文件描述符之间的关联关系。如果一个文件关闭以后重新打开,那么文件描述符可能改变。Perl 在保证某些文件描述符不会因为对它们的 open 失败而丢失的时候碰到了一些麻烦,它现在只能对那些不超过当前特殊变量 $^F($SYSTEM_FD_MAX)的当前值(缺省是 2)的文件描述符保证这一点。尽管文件句柄 STDIN, STDOUT,和 STDERR 从文件描述符 0,1,和 2 开始(Unix 标准传统),但如果你非常随意地打开和关闭它们的话,那么它们都有可能改变。只要你总是在关闭以后马上重新打开,那么你在
0,1,和 2 上不会碰到麻烦。在 Unix 系统上,基本规则是先用最小的描述符,而那个会是你刚刚关闭的那个。
这个函数返回在一个文件句柄下面的文件描述符。如果该文件句柄没有 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 系统上,基本规则是先用最小的描述符,而那个会是你刚刚关闭的那个。
相关文章推荐
- JScript中正则表达函数的说明与应用
- TC2.0函数说明
- Turbo C 2.0 函数中文说明大全
- sap里部分函数说明
- 主调函数对被调函数任类型说明(申明)的问题[转]
- Win2000共享内存 CreateFileMapping的函数参数说明
- 常用的oracle函数使用说明(一)
- JScript中正则表达函数的说明与应用
- snort中的实用函数的说明
- [教程]JScript中的变量引用规则(补充,函数用法说明)
- JScript中正则表达函数的说明与应用
- C++的一些基本功,包括对常量成员函数的一些特殊说明
- 关于ATL自动生成的事件激发函数Fire_XXX(...)的代码说明
- ASP中的函数说明
- TUXEDO 函数 说明 (中文)
- OpenGL的函数中文说明一:glBlendFunc
- phplib7.2 模版功能函数说明
- 常用的oracle函数使用说明(二)
- JScript中正则表达函数的说明与应用
- 关于诸如window.comfirm()等脚本系统函数和html页面自定义函数重名的错误陷阱的说明