Tcl对文件和程序的操作

exec、file、open、close、read、write、puts、gets、flush、seek、tell、glob、pwd、cd、exit、pid、registry

1、exec:程序的标准输出作为exec命令的值返回。然而如果程序向标准错误通道中书写内容或是以非0状态代码退出,exec就会报错。exec命令支持全套的I/O重定向和管道语法。每个进程通常有三个与之关联的I/O通道:标准输入、标准输出、以及标准错误输出。|代表管道、>代表输出、<代表输入,使用&来将标准错误输出合并到标准输出中,使用2>来讲标准错误输出单独分离出来。通过使用@来使用自己的I/O通道。

exec I/O重定向语法的总结
语法 说明
-keepnewline (第一个变元)不要丢弃结果中尾部的换行符
| 使一个进程的标准输出作为管道中另一个进程的标准输入
|& 使标准输出和标准错误输出同时作为管道输出
<fileName 从指定的文件接收输入
<@fileId 从由fileId标识的I/O通道接收输入
<<value 从给定的value接收输入
>fileName 使用标准输出重写fileName
2>fileName 使用标准错误输出重写fileName
>&fileName 同时使用标准错误输出和标准输出重写fileName
>>fileName 将标准输出追加到给定的文件中
2>>fileName 将标准错误输出追加到给定的文件中
>>&fileName 同时使用标准错误输出和标准输出追加到指定的文件中
>@fileId 将标准输出定向到由field标识的I/O通道
2>@fileId 将标准错误输出定向到由field标识的I/O通道
>&@fileId 同时将标准错误输出和标准输出定向到由fileId指定的I/O通道
& 作为最后一个变元,它表示将管道放在后台执行

2、file:提供几种检测文件系统中文件状态的方法。

file命令选项
file atime name 返回十进制字符串形式的存取时间
file attribute name? option? ?value? 查询或设置文件属性
file copy ?-force? source destination 将文件source拷贝到文件destination。source和destination可以是目录
file delete ?-force? name 删除指定的文件
file dirname name 返回文件name的父目录
file executable name 如果name具有可执行权限,那么就返回1,否则返回0
file exitsts name 如果文件存在就返回1,否则返回0
file extension name 返回name中从最后一个点(即.)到结尾的部分。点包含在返回值中
file isdirectory name 如果name是目录就返回1,否则就返回0
file isfile name 如果name不是目录、符号连接或设备文件的话就返回1,否则就返回0
file join path path ... 将路径名的各部分连接起来形成一个新的路径名
file istat name var  将连接name的属性存到var中
file mkdir name 创建目录name
file mtime name 返回十进制字符串形式的name的修改时间
file nativename name 返回name的本机平台版本
file owned name 如果当前用户是文件name的属主就返回1,否则返回0
file pathtype name 为relative、absolute或driverelative
file readable name 如果name有可读权限则返回1,否则返回0
file readlink name 返回符号连接name的内容
file rename ?-force? old new 将名字old改名为new
file rootname name 返回除name的扩展名以外的所有其他内容(即,返回name中直到最后一个点为止的部分,不包括那个点)
file size name 返回name的字节数
file split name 将name分解为各个路径组成部分
file stat name var 将name的属性存储在数组var中
file tail name 返回name的最后一个路径组成部分

file type name

返回类型标识符,有file、directory、characterSpectial、blockSpectial、fifo、link或socket
file writable name 如果name具有可写权限就返回1,否则返回0

3、对I/O命令的总结

用来进行文件存取的Tcl命令
命令 说明
open what ?access? ?permissions? 返回打开文件或管道的通道ID
puts ?-nonewline? ?channnek? string 输出一个字符串
gets channel ?varname? 读取一行信息
read channel ?numBytes? 读取numBytes个字节,或所有数据
read -monewline channel 读取所有的字节并丢弃最后的\n
tell channel 返回定位偏移量
seek channel offset ?origin? 设置定位偏移量,origin为start、current或end
eof channel 查询文件结束状态
flush channel 输出通道缓冲区中的数据
close channel  关闭一个I/O通道
发布了78 篇原创文章 · 获赞 7 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/hepiaopiao_wemedia/article/details/100803605