用c语言运行Linux命令,使用execv(C语言)从linux命令提示符运行命令

到目前为止,我唯一感到困惑的部分是如何使用第一个参数设置execv作为当前工作目录。我已经尝试了两个“。”和“〜”,既不向屏幕执行任何操作;同“/”。和“/〜”。我如何有execv运行这样的困惑:

$ ./prog LS -t -al

而且有它在当前目录下执行程序后,执行的命令(其存储到的argv) ,或同一目录中的文件是(这将基于谁在使用它而改变。)

我的代码:

使用execv(C语言)从linux命令提示符运行命令

#include

#include

#include

#include

void main(int argc, char *argv[])

{

int pid;

int count = 0;

char *argv2[argc+1];

for(count = 0; count < argc-1; count++){

argv2[count] = argv[count+1];

printf("Argv2: %s\n", argv2[count]); //just double checking

argv2[argc-1] = NULL;

}

pid = fork();

if(pid == 0){

printf("Child's PID is %d. Parent's PID is %d\n", (int)getpid, (int)getppid());

execv(".", argv2); //

}

else{

wait(pid);

exit(0);

}

}

一些样本输出:

$ ./prog LS -t -al

Argv2:LS

Argv2:-t

Argv2:-al

孩子的PID是19194.家长的PID为19193

2012-09-25

Baelix

+0

我会建议您提高设置为“编译器警告”。它应该告诉你从main返回int。在我的系统上,它也抱怨缺少#include 。并等待一个整数指针作为参数,而不是整数。 –

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值