LINUX环境下C语言程序。

因为C语言学的不好而且从来没接触过UNIX编程,所以只能求助于各位。项目卡在这个程序好几星期了,自己不会做。麻烦哪位高手能给个例子。就是用FORK建立子进程,然后在子进程... 因为C语言学的不好而且从来没接触过UNIX编程,所以只能求助于各位。项目卡在这个程序好几星期了,自己不会做。
麻烦哪位高手能给个例子。
就是用FORK建立子进程,然后在子进程里运行一个东西,然后在父进程里用getrusage函数得到子进程的时间等信息。我只知道要用wait()然后getrusage(RUSAGE_CHILDREN,struct rusage *r_usage)该怎么用。
希望能给个简单的例子,太谢谢大家了。
对了,如果还要满足当子进程使用内存超过一定,或者时间超过一定限制就结束该用哪个函数????
我查了用这个getrlimit函数可以实现,有哪位有简单的例子么?
另外
如果想执行通过int main(int argc,char *argv[])得到的argv[1]里的语句该怎么办?
就是说比如这个程序想运行ls这个命令,可以这样实现system("ls");
如果想实现system("argv[1]");该怎么办。
是不是可以用exec实习,具体能举个例子么?谢谢各位
展开
 我来答
kwydwuf
2010-02-25 · TA获得超过7411个赞
知道大有可为答主
回答量:1527
采纳率:71%
帮助的人:2027万
展开全部
看一下我这个例子,在子进程里执行 "ls -l /usr/bin",在父进程中等待子进程执行结束后,打印子进程执行ls用掉的时间(单位毫秒)。

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/resource.h>

int spawn_child()
{
int pid = fork();
if (pid == 0)
{
execlp("ls", "ls", "-l", "/usr/bin", NULL);
exit(0);
}
else
{
return pid;
}
}

int main()
{
int child_stat;
struct rusage use;

spawn_child();
wait(&child_stat);
getrusage(RUSAGE_CHILDREN, &use);
printf("systime %lu milliseconds, usertime %lu milliseconds\n",
use.ru_stime.tv_sec*1000+use.ru_stime.tv_usec/1000,
use.ru_utime.tv_sec*1000+use.ru_utime.tv_usec/1000);
return 0;
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式