免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2328 | 回复: 6
打印 上一主题 下一主题

请教:UNIX中如何获取进程执行的程序名? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2003-08-31 18:20 |只看该作者 |倒序浏览
我们可以在操作系统中通过ps -ef|grep "程序名"的方式得到该程序是否在执行,但如果在程序中老调用system("ps -ef..."的方式好像对系统性能消耗较大,并且有时出现不释放的情况,有没有API可以直接实现该方式?

请大侠赐教!

论坛徽章:
0
2 [报告]
发表于 2003-08-31 18:55 |只看该作者

请教:UNIX中如何获取进程执行的程序名?

不知你要取文件名有何用????
dragonfox 该用户已被删除
3 [报告]
发表于 2003-08-31 19:32 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
4 [报告]
发表于 2003-09-01 08:41 |只看该作者

请教:UNIX中如何获取进程执行的程序名?

论坛徽章:
0
5 [报告]
发表于 2003-09-01 14:36 |只看该作者

请教:UNIX中如何获取进程执行的程序名?

如果你是编写的字符界面程序,下面这段代码可以帮你提取出程序运行的绝对路经。通过处理,就可以得到程序的名称了。

#include <iostream>;
#include <sstream>;
using namespace std;

void main(int argc,char* argv[])
{
ostringstream os;
os<<argv[0];
cout<<argc<<"rogram name: "<<os.str()<<endl;
}

--------------------------程序输出--------------------------
1Program name: e:\project\ace_examples\using_heritance\debug\using_heritance.exe

不过代码好像在Linux上无法运行。    

论坛徽章:
0
6 [报告]
发表于 2003-09-02 01:03 |只看该作者

请教:UNIX中如何获取进程执行的程序名?

你可以到/proc下去列取运行的进程的程序名
也可以用popen( "ps -eo pid,fname", "r" )来得到
用popen好像省事些,虽然吃了点资源,但也不会释放不了呀,诡异,
我一向比较懒,都只是popen就搞定了,好像有一次勤快了一回,就去/proc下列取了一回

论坛徽章:
0
7 [报告]
发表于 2003-09-02 11:28 |只看该作者

请教:UNIX中如何获取进程执行的程序名?

cat /proc/[pid]/psinfo or status
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP