怎样用C语言得到一个进程的全路径

一个进程的命令行保存在文件/proc/pid/cmdline中,参数之间是字节0分隔。下面的小程序举例说明如何去读这个文件。

#include <iostream>
#include <fstream>

int main(int argc, char* argv[]) {
  if(argc != 2) {
    printf("usage: %s pid ", argv[0]);
    exit(0);
  }

  std::string path(argv[1]);
  path = "/proc/" + path + "/cmdline";
  std::ifstream fin(path.c_str());
  if(!fin) {
    std::cout << "Open /proc/" << argv[1] << "/cmdline failed! ";
    exit(-1);
  }
  std::string s;
  while (getline(fin, s, ''))
  {
    std::cout << s << std::endl;
  }
}

时间: 2024-12-31 15:55:05

怎样用C语言得到一个进程的全路径的相关文章

程序开始时候文件夹中有m个文件,结束以后有m+1个,如何获取这增加的一个文件的全路径。

问题描述 程序开始时候文件夹中有m个文件,结束以后有m+1个,如何获取这增加的一个文件的全路径?谢谢! 解决方案 解决方案二:System.IO.FileSystemWatcherfsw=newSystem.IO.FileSystemWatcher();privatevoidForm1_Load(objectsender,EventArgse){fsw.Path="你要监视的目录";fsw.Filter="*.*";fsw.EnableRaisingEvents=t

erilog-用verilong语言编写一个走马灯的代码

问题描述 用verilong语言编写一个走马灯的代码 多模式LED发光控制器(Basys3)1)采用16个并排LED实现跑马灯发光器件:2)具有异步复位功能(按钮),复位时,LED全亮:3)模式选择(利用两位滑动开关):00-左循环跑马灯,01-右循环跑马灯,10-交叉闪烁跑马灯,11-全亮全灭闪烁4)速度选择(利用两位滑动开关):通过00-11实现四个速度等级的闪烁效果 解决方案 参考http://download.csdn.net/detail/xkdhdl/1745598http://ww

c语言-C语言的一个程序,求大神

问题描述 C语言的一个程序,求大神 三.实验内容 1.实验题目:手动输入10个0~100之内的整数,按从小到大排列输出.: (1)要求 排序算法: 使数组从小到大排序的规则如下: ⑴ 设数组为a[0],a[1],-,a[n-1],构造i循环从0,1,-,n-2变化,构造j循环从i+1,i+2,-,n-1变化,即j>i. ⑵ 对于任何一个a[i],如果a[i]>a[j],表面前面有一个元素a[i]比它后面的元素a[j]大,a[i]应该在后面,a[j]应该在前面,交换a[i]与a[j]. ⑶ 对于

用c语言做一个学籍系统登陆界面,求源代码

问题描述 用c语言做一个学籍系统登陆界面,求源代码 请问我要用c语言做一个学籍系统登陆界面咋做,有没有源代码,格式如下: ****************学生学籍管理系统**************** 1,注册 2,登陆 3,修改密码 0,退出系统 请选择0~3 解决方案 http://www.docin.com/p-565175373.htmlhttp://wenku.baidu.com/link?url=k0FVy3GjeXwWYcZsHz3X5ir_qGRBS_OElVg5XDcTydD

中文字符-如何用C语言编写一个简单的输入法程序,要求可以输入汉字。

问题描述 如何用C语言编写一个简单的输入法程序,要求可以输入汉字. 不太清楚汉字在计算机中是如何存储的,想知道例如微软的智能ABC以及搜狗输入法是怎样实现拼音拼写下的汉字输入. 解决方案 首先要有一个汉字的编码库,比如GB2312编写的是拼音输入法的话,还要建立一个拼音与汉字对应的数据库然后根据用户输入的拼音,提示出对应的汉字(汉字的优先顺序由数据库决定,同时还可以学习该用户的使用习惯)如果输入法还支持智能联想输入的话,还要加入词库(也有优先级),这样可以根据前一个字来推断出下一个可能的字 解决

c语言的一个问题,请大牛帮忙看看,感激不尽

问题描述 c语言的一个问题,请大牛帮忙看看,感激不尽 我写的一个小程序: #include #include #include void main(){ pid_t pid; int i; for(i=1; i<2; i++) { pid = fork(); if(pid == 0 || pid < 0) break; } //pid = fork(); if(pid == 0){ printf("this is child process! "); char *s; in

Windows系统中一个进程可以允许最大的线程数

默认情况下,一个线程的栈要预留1M的内存空间 而一个进程中可用的内存空间只有2G,所以理论上一个进程中最多可以开2048个线程 但是内存当然不可能完全拿来作线程的栈,所以实际数目要比这个值要小. 你也可以通过连接时修改默认栈大小,将其改的比较小,这样就可以多开一些线程. 如将默认栈的大小改成512K,这样理论上最多就可以开4096个线程. 即使物理内存再大,一个进程中可以起的线程总要受到2GB这个内存空间的限制. 比方说你的机器装了64GB物理内存,但每个进程的内存空间还是4GB,其中用户态可用

C语言实现一个四叉树(quadtree)

用C语言实现一个2维四叉树quadtree,具有一定的实际意义.你可以把几何图形的索引(用long型的id标识)放到这个树中(根据最小边界矩形).quadtree可以用来快速区域查找图形,虽然不是那么精确,但是毕竟没有漏掉的.虽然quadtree的效率不如RTree?但是RTree的实现毕竟复杂了些,我会尽快收集整理出RTree的代码.RTree确实比QuadTree好的多?(起码RTree很时髦啊!) 头文件如下: /* * quadtree.h * Quad tree structure -

C语言实现一个简单的单向链表list

用C语言实现一个简单实用的单向链表list,具有一定的实际意义.尤其我们不想使用STL里面的list<...>类的时候.我实现的这个list,结点存储任何调用者分配的任意类型的数据(void*).这个list适用于一些简单的场合,消耗极少的资源. 头文件: /* * list.h * Generic sequential linked list node structure -- can hold any type data. * cheungmine * Sep. 22, 2007. All