Linux 版 (精华区)

发信人: qubo (qubo), 信区: Linux
标  题: [合集]得到进程的cmdline
发信站: 哈工大紫丁香 (2003年11月10日13:32:38 星期一), 站内信件


────────────────────────────────────────
 sino (柠檬红茶)                      于 2003年10月17日15:45:01 星期五 说道:

自己用到了,与大家分享
#include "stdio.h"
#define MAX 2000
int main(int argc,char **argv)
{
    FILE *fin;
    char buf[MAX];
    int i, pid;
    if (argc!=2) return 1;
    sprintf(buf, "/proc/%s/cmdline", argv[1]);
    if ((fin = fopen(buf, "rb"))==NULL) return 1;
    fread(buf, 1, MAX, fin);
    fclose(fin);
    for (i=1;i<MAX;i++) {
        if (buf[i-1]==0)
            if (buf[i]==0) break; else buf[i-1]=0x20;
    }
    printf("%s\n",buf);
    return 0;
}

────────────────────────────────────────
 yuni (我要我的自由)                  于 2003年10月20日13:16:59 星期一 说道:

:q
【 在 sino (柠檬红茶) 的大作中提到: 】
: 自己用到了,与大家分享
: #include "stdio.h"
: #define MAX 2000
: int main(int argc,char **argv)
: {

────────────────────────────────────────
 sino (柠檬红茶)                      于 2003年10月20日16:31:40 星期一 说道:

?
【 在 yuni (我要我的自由) 的大作中提到: 】
: :q
: 【 在 sino (柠檬红茶) 的大作中提到: 】
: : 自己用到了,与大家分享
: : #include "stdio.h"
: : #define MAX 2000
: : int main(int argc,char **argv)
: : {

────────────────────────────────────────
 sino (柠檬红茶)                      于 2003年10月21日12:19:11 星期二 说道:

比如我的系统上,xinetd的pid是863
[bz@AVS compile]$ ./a.out 863
xinetd -stayalive -reuse -pidfile /var/run/xinetd.pid
普通用户也可以,需要有/proc支持
其实这个程序有点问题,断句按0x0000不准确。
【 在 sino (柠檬红茶) 的大作中提到: 】
: 自己用到了,与大家分享
: #include "stdio.h"
: #define MAX 2000
: int main(int argc,char **argv)
: {

────────────────────────────────────────
[百宝箱] [返回首页] [上级目录] [根目录] [返回顶部] [刷新] [返回]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:2.152毫秒