linux获取可执行文件名及进程ID

最近项目需要做应用管理,需要知道运行的应用名称及其进程ID,用于监控程序的资源占用情况。

        首先是获取可执行文件名,需要用到readlink()函数,但是readlink获取的是可执行文件的绝对路径,需要用到strrchr()函数进行字符串处理,去掉路径,提取出可执行文件名。

readlink()函数用法:

strrchr()函数用法:

获取可执行文件名函数代码如下:

int get_exec_name(char *name,int name_size)
{
	char path[1024]={0};
	int ret = readlink("/proc/self/exe",path,sizeof(path)-1);
	if(ret == -1)
	{
		printf("---- get exec name fail!!\n");
		return -1;
	}
	path[ret]= '\0';

	char *ptr = strrchr(path,'/');
	bzero(name,name_size); //清空缓存区
	strncpy(name,ptr+1,name_size-1);
	return 0;
}

获取进程PID则直接调用getpid()函数即可:

getpid()用法:

测试代码如下:

int main(int argc,char *argv[])
{	
	char path[256]={0};
	get_exec_name(path,sizeof(path)); //获取可执行文件名
	
	int pid = getpid(); //获取进程ID
	printf("exec_name = %s pid=%d\n",path,pid);
	while(1);
    return 0;
}

测试结果:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值