CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Linux/Unix社区 >  程序开发区

通过访问/proc 怎样获得进程的参数列表

楼主ublue(ublue)2004-12-02 08:28:08 在 Linux/Unix社区 / 程序开发区 提问

我的程序如下:    
   
  int   getArgList(int   fd,   PROCSTAT   *   pProcStat,   psinfo_t   *   pPsinfo)    
  {    
  char   *argv[MAX_ARG_NUM];    
  int   ret,   argIndex;    
  int   memSize;    
  int   argc   =   pPsinfo->pr_argc;    
  pProcStat->argc   =   argc;    
   
  memSize   =   argc   *   sizeof(char   *);    
  debugMsg(4,   DebugLevel,   "psinfo   argc:   %d,   memSize:   %d,   pointer:   %u\n",   argc,   memSize,   (ULONG)pPsinfo->pr_argv);    
  ret   =   pread(fd,   argv,   memSize,   pPsinfo->pr_argv);    
  if   (ret   <=   0)    
  {    
  errormsg(1,   "read   psinfo   argv   pointer   vector   fail,   retvalue:   %d,   errno:   %d\n",   ret,   errno);    
  return   -3;    
  }    
   
  for   (argIndex   =   0;   argIndex   <   argc;   argIndex++)    
  {    
  if   (pProcStat->argv[argIndex]   ==   NULL)    
  {    
  errormsg(1,   "read   psinfo   argv   fail,   argc   %d,   index:   %d\n",   argc,   argIndex);    
  return   -1;    
  }    
  ret   =   pread(fd,   pProcStat->argv[argIndex],   MAX_ARG_STRING,   argv[argIndex]);    
  if   (ret   <=   0)    
  {    
  errormsg(1,   "read   psinfo   argv   fail,   ret:   %d,   errno:   %d\n",    
  ret,   errno);    
  return   -1;    
  }    
  debugMsg(4,   DebugLevel,   "index   %d,   argv:   %s\n",   argIndex,   pProcStat->argv[argIndex]);    
  }    
  return   0;    
  }    
   
  在程序实际运行过程中,我有一个进程,其argc为3,但每次在执行    
  ret   =   pread(fd,   argv,   memSize,   pPsinfo->pr_argv)    
  语句时,结果为:    
  ret=0,   errno=0,    
  很郁闷的错误,实际上参数个数已经为3。    
   
  请高手回答怎样获得正确的参数列表。 问题点数:0、回复次数:2Top

1 楼ublue(ublue)回复于 2004-12-02 12:52:38 得分 0

我已经采用另一种方式解决了。  
  psinfo_t结构中的pr_psargs可以获得参数列表。Top

2 楼yuanlei1978113(小石头)回复于 2004-12-02 13:27:27 得分 0

来晚了.   恭喜.Top

相关问题

  • MAKEINTRESOURCE 可用参数列表
  • 可变参数列表的问题》。。
  • 什么叫初始化参数列表?
  • 如何传参数给进程?
  • 进程如果传递参数....
  • 获取系统当前进程列表?
  • 在WINDOWS2000下如何隐藏在进程列表中的进程?
  • ADO怎么取存储过程的参数列表及参数类型????
  • 用API:ADO怎么取存储过程的参数列表及参数类型????
  • 进程通信的问题,怎么在进程间传递参数?

关键词

  • ppsinfo
  • argindex
  • memsize
  • psinfo
  • 参数列表
  • pprocstat
  • pread
  • argc
  • argv
  • ret

得分解答快速导航

  • 帖主:ublue

相关链接

  • CSDN Blog
  • 技术文档
  • 代码下载
  • 第二书店
  • 读书频道

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo