Linux修改进程名称(setproctitle())

本文介绍了Linux下如何修改进程名称,详细阐述了进程名称与命令行参数argv及环境变量environ的关系,并通过一个测试程序验证它们在内存中的连续性。在修改进程名称时,需要注意不能直接覆盖原有内存,而应重新分配内存并复制内容。最后,提到了Nginx在处理这一问题上的做法。
摘要由CSDN通过智能技术生成

1.1    介绍

每一个c程序都有个main函数,作为程序启动入口函数。main函数的原型是int main(int argc , char *argv[]);其中argc表示命令行参数的个数;argv是一个指针数组,保存所有命令行字符串。Linux进程名称是通过命令行参数argv[0]来表示的。

Linux 还有环境变量参数信息,表示进程执行需要的所有环境变量信息。通过全局变量

Char **environ;可以访问环境变量。

命令行参数argv和环境变量信息environ是在一块连续的内存中表示的,并且environ紧跟在argv后面。如下图:

 

1.2    验证argv和environ执行连续内存的测试程序

1 #include <stdio.h>
  2 #include <string.h>
  3
  4 extern char **environ;
  5 int main(int argc , char *argv[])
  6 {
  7    int i;
  8
  9    printf("argc:%d\n" , argc);
 10
 11    for (i = 0; i < argc; ++i){
 12        printf("%x\n" , argv[i]);
 13        printf("argv[%d]:%s\n" , i , argv[i]);
 14     }
 15
 16    printf("evriron=%x\n" , 
  • 1
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值