system:执行系统命令

system:执行系统命令
该函数的调用方式如下所示:

INTEGER*4 system

status = system( string )

string 类型为character*n,输入,包含执行命令的字符串 。

status 返回值 ,类型为:INTEGER*4,输出, 执行的 shell 的退出状态。有关该值的说明,请参见 wait(2)。

示例:system():
character8 string / ’ls s’ /
INTEGER*4 status, system
status = system( string )
if ( status .ne. 0 ) stop ’system: error’
end
函数 system 将 string 作为输入传递给 shell,就好像以命令方式键入该字符串。注意:string 不能超过 1,024 个字符。

如果 system 可以找到环境变量 SHELL,则 system 会将 SHELL 值用作命令解释程序 (shell);否则使用 sh(1)。

当前进程将等到命令终止。

一直以来,对 cc 开发时进行了不同的假设:

如果 cc 调用 system,则 shell 始终为 Bourne shell。

system 函数会刷新打开的所有文件:

对于输出文件,缓冲区将刷新到实际文件中。

对于输入文件,无法预见指针的位置。

函数 sh(3f) 和 system(3f) 将参数字符串传递给 shell 用于执行。它们将参数字符串从 Fortran 字符值转换为 C 字符串值,并将其传递给 C 例程 system(3c)。例程 sh(3f) 和 system(3f) 的不同之处在于,system 在调用 C 例程 system 前将刷新 Fortran I/O 缓冲区,而 sh 则不会刷新缓冲区。由于刷新缓冲区需要很长时间,因此,如果 Fortran 输出与调用结果无关,那么优先使用例程 system,而非例程 sh 。

另请参见:execve(2)、wait(2) 和 system(3)。

system() 函数不能安全地用于多线程程序。请勿从多线程或并行程序中调用该函数。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值