文件描述符:
访问文件时用来代表文件的数字。
它是系统资源,系统限制打开的文件描述符的数量
Perl中只有某些系统调用时才使用它
文件句柄:
功能同文件描述符,但是文件描述符
文件句柄:
功能同文件描述符,但是与文件描述符不是一个东西。
Perl使用文件句柄代表文件
文件描述符于文件句柄互相转换:
文件句柄=>文件描述符: fileno(F);返回文件描述符
文件描述符=>文件句柄 :open (F,">&n);
文件变量:
存放在磁盘上,永久存储数据。用于读写访问,访问前要先打开文件,结束要关闭文件
open(HANDLE,">filename") || die $!;成功返回非0,失败返回0
HANDLE:文件句柄,文件变量。用来代表操作的文件。以字母开头,字母,数字,下划线组成,不以$,@,%类的符号开头,可能与关键字if等重名,故一般用大写字母。
缺省打开的句柄STDIN,STDOUT,STDERR,文件描述符为0,1,2 不能调用open就可以直接访问
STDIN: 键盘输入,控制台
STDOUT:屏幕,显示屏
STDERR: 错误输出,显示屏
文件读写模式:
文件用于读还是写,在第二个参数前的>位置
1.只读,<或省略,如果文件不存在则打开失败。如OPEN(F,'file'); OPEN(F,"<file");
2.只写:> 为写打开文件,文件不存在则创建,文件存在则清除内容重写。
3.追加:>>,为写打开文件,文件不存在则创建,文件存在不清除内容,在原内容后追加。
4.读写:+< 可读可写,文件不存在则失败,不清除内容,不追加,直接覆盖原文件。
5.读写:+> 可读可写,文件不存在则创建,文件存在则清除内容再写。
6.读写:+>> ,可读可写,文件不存在则创建,文件存在则追加。
管道: |
open (F,"cat>hello");把文件F的输出(print F $a) 作为|后的输入。
open(F,"comm|");把comm的输出作为F的输入,以下内容只要读出。Comm为命令
文件名:
Filename:含相对路径或绝对路径的文件名
不含路径的文件名前的空格可以忽略,但有路径的文件名不能。
可以用变量代表文件名
特殊的文件如">file",可能使读变成写。使用变量代表文件名时注意过滤文件名。
赋值文件句柄;open(F,">&STDOUT);写入F文件的内容都变成写入屏幕STDOUUT
使用文件描述符:open(F,">&3);把文件描述符赋值成句柄。或者">&=3"
open() 打开成功返回非零,失败返回零