popen函数引发的血案 -- 64位debian 6

34 篇文章 0 订阅
19 篇文章 0 订阅
在使用popen()函数查看my_test.py进程数的shell命令是:ps -ef | grep '/usr/bin/python /var/test/my_test.py' | grep -v grep | wc -l 返回的结果始终是0!!!但是在终端上执行该命令的结果却又是正确的!
于是只能一步一步来,先看看命令的前半部分结果是否正确,也就是使用popen()函数执行:

ps -ef | grep '/usr/bin/python/var/test/my_test.py',结果为空。

接下来只好用popen()函数执行:ps -ef,结果能显示出一些进程,但是my_test.py进程的一行有一点问题,只显示:

root      2141     1  0 17:03 ?        00:00:08 /usr/bin/python/var/test/my_tes
可以看出后面少了几个字符,应该是:
root      2141     1  0 17:03 ?        00:00:08 /usr/bin/python/var/test/my_test.py
才对。然后查看了ps的命令,看看能不能找到某些参数能让去掉前面的一些对我们这里不太重要的信息,结果却找到了-w(显示加宽可以显示较多的资讯)参数,于是一试,对应的结果为:

root      2141     1  0 17:03 ?        00:00:08 /usr/bin/python/var/test/my_tes

t.py


于是我推断,应该是64位系统的shell环境每行只允许输出80个字符(root      2141     1  0 17:03 ?        00:00:08 /usr/bin/python /var/test/my_tes 的长度),使用 -w 参数可以将输出换行,这样就能得到正确的结果!


博主所有文章已转自私人博客  Joe 的个人博客 ,谢谢关注!
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值