本人按照《Linux C程序设计大全》书中的例子exec.c学习execvp函数的用法,但是始终得不到书上的结果,请大侠帮我看看哪里有问题。本人编程环境windows xp下的visual pc虚拟的red hat 9。
/* 程序exec.c */
#include
请问execvp是不是不支持重定向。比如: char * argv[] = { "tar","-jxOf","ip.txt.tar.bz", ">","ip.txt.tmp",0} ; execvp("tar",argv); 报错:tar: >:归档中找不到 其中ip.txt.tar.bz只有一个文件ip.txt 这个有办法解决吗?不用system函数,不分布解压成ip.txt后,再mv
用execvp函数,它的第二个参数是要求 char* const 类型的,也就是说,我用 char* arg[2]={"ab","cd"}, 就可以代入这个函数使用 但是如果我只是声明 char* arg[2], 然后 arg[0]="ab", arg["cd"], 这样代入函数就不好用 我觉得应该是这个函数需要char* const类型的原因,所以有什么办法转化吗?
启动ssh时候报的错!咋弄,谁知道,说,谢谢了。 sshd:execvp: No such file or directory
int execvp(const char *file,char *const argv[])函数 加载一个可执行文件到调用进程的地址空间中,然后执行这个程序 如果成功,就会覆盖当前运行的进程内容。 这是不是说明,调用的进程覆盖了原来的进程,那么在调用的进程运行结束后,原来的进程也不再执行?
如果使用execvp成功则原来父进程的数据段会被子进程覆盖,但是堆栈会怎么样呢?! 我调用execvp传入的arg list是使用malloc分配的,执行execvp之后这快空间是否应该释放,如果释放的话应该怎么做?! 谢谢先了!!!
今天在AIX下写程序,发现如下问题: 我在配置文件里面存储一个命令,例如cp /home/*.txt ./ 我还程序里面读出这个命令,然后用execvp或system去调用。 发现用execvp调用的时候,不支持通配符,也就是说cp /home/a.txt ./ 就可以执行成功,如果是 cp /home/*.txt ./ 就不行,提示/home/*.txt不存在。 而用system 不会出现这个问题。 两种都支持, 但是system调用有个问题, 因为他是先fork一个子进程,起一个shell, 然后再去调...