添加留言
表情
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
打开HTML
打开UBB
打开表情
隐藏
记住我
昵称   密码   游客无需密码
网址   电邮   [注册]
               

 
skychf
2011-9-5 23:04
新版什么出来啊,现在九月到了啊,
NONO
2011-9-5 11:36
顶,等待新版本
collo
2011-9-4 13:39
顶,我保靖的。老乡活的精彩啊。
权天王
2011-9-2 21:48
听说9月出新版,我天天来这里等啊!希望大大的有
111
2011-9-2 17:01
APMServ 新版本是不是最近快出了?
john_z Email
2011-9-1 17:21
嘿嘿 张兄 买了你的书 觉得很不错
烟鬼
2011-8-30 17:49
你好宴兄,請問一下,使用LVS能做samba服務的負載均衡麼?
小中
2011-8-30 14:12
你好。nginx搭建有问题。我的QQ:331911080。谢谢
2011-8-29 22:41
求助  我用APMServ5.2.6搭建PHP平台没有成功  请指教  方便的话加我QQ21883266  我截图给你看  有个地方不明白
Aug4
2011-8-26 18:14
void prename_setproctitle(const char *fmt, ...)
{
    char *p;
    int i;
    char buf[MAXLINE];

    extern char **g_main_Argv;
    extern char *g_main_LastArgv;
    va_list ap;
    p = buf;

    va_start(ap, fmt);
    vsprintf(p, fmt, ap);
    va_end(ap);


    i = strlen(buf);

    if (i > g_main_LastArgv - g_main_Argv[0] - 2)
    {
        i = g_main_LastArgv - g_main_Argv[0] - 2;
        buf[i] = '\0';
    }
    
    (void) strcpy(g_main_Argv[0], buf);
    p = &g_main_Argv[0][i];
  
    /*不太明白为啥后面的都要清空呢,清空后,为啥g_main_Argv【2】等后面还是有输出?*/    
    while (p < g_main_LastArgv)
       *p++ = '\0';//SPT_PADCHAR;
    g_main_Argv[1] = NULL;

#ifdef Linux
     prctl(PR_SET_NAME,buf);
#endif

}


这是我看您的源码的时候,遇到的一些不理解的地方。原先是从argv[0]一直到env结束的(ARGV和ENV在内存中一定是连续的吗?),后来将新的程序名字(包括参数)全部都覆盖到argv[0]了,但是这时候原来的argv[1],argv[2]就变乱了。。

比如这样运行:./prename param1 param2 param3
重命名后我在输出argv,:
argv[0]=[love]  ./prename param1 param2 param3
argv[1]=(null)
argv[2]= param1 param2 param3
argv[3]= param2 param3

是不是重命名只是完全单纯影响ps -ef查看?对程序没有其他影响?(如果我不再次使用argv[1],argv[2]的话),另外这样操作之后,程序中用到的环境变量env是否有影响?请民大师兄一定要解答呀。。。
张宴 回复于 2011-8-29 18:26
是的。只是为了在argv[1],argv[2]不再使用的情况下,单纯影响ps -ef查看,对程序没有其他影响。这是因为很多系统管理员习惯直接 ./httpsqs 运行程序,这样改可以方便其他系统管理员 ps -ef 查看时清晰地看到程序的绝对路径、启动参数、父子进程。
分页: 2302/2445 第一页 上页 2297 2298 2299 2300 2301 2302 2303 2304 2305 2306 下页 最后页