我想从perl直接与linux进行连接,以执行一些调用,如statvfs。 我很好奇,如果有一种方法,只用核心perl包(没有额外的模块)。
特别是,我想获得没有安装/启用df的服务器的磁盘使用情况信息。
在打开terminal时自动运行命令(linux Mint 16)
如何检查命令是否可用?
cudaHostRegister是否等同于mlock()系统调用?
在/ proc / modules中加载模块的状态
find哪个MATLAB脚本在linux中运行
我想从perl直接与linux进行连接,以执行一些调用,如statvfs。 我很好奇,如果有一种方法,只用核心perl包(没有额外的模块)。
技术性的,但可能不是很有用的回答你的问题是,是的,确实存在一种方法来做什么statvfs只用核心Perl和没有模块。 它是这样工作的:
my $statfs_buffer = "" x length(pack($STATFS_TEMPLATE,())); my $retval = syscall($SYS_statfs,$some_filename,$statfs_buffer); if ($retval == -1) { dIE "statfs Failed: $!"; } my($f_type,$f_bsize,$f_blocks,$f_bfree,$f_bavail,$f_files,$f_ffree,$f_fsID,$f_namelen) = unpack($STATFS_TEMPLATE,$statfs_buffer);
问题是你必须找出$SYS_statfs和$STATFS_TEMPLATE的值; 前者容易,后者不难。
但是,在某些系统上,您将不得不使用这些的statfs64变体。
所以是的,只要你有足够的决心,就可以做你想做的事情。 不过,有更好的方法可以做到。
use POSIX; 想到。 但是statvfs不在其提供的功能之中。 也许你正在寻找use filesys::Df; 这里。
我还没有看到一个系统有Perl,但没有coreutils(DF)安装…
总结以上是内存溢出为你收集整理的Perl的“import *** 作系统”Python的equivelant?全部内容,希望文章能够帮你解决Perl的“import *** 作系统”Python的equivelant?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)