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通道

 

  • 1
    点赞
  • 41
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值