ChinaUnix.net
相关文章推荐:

linux execl函数

#include #include int main() { fprintf(stderr,"--begin--\n"); execl("/bin/ls","-l","/home",0);//警告说没有哨兵 什么是哨兵/?作用是? fprintf(stderr,"--end--\n"); return 0; } 结果为什么是: --begin-- jqx2008 soft 正确的结果应该是: drwxr-xr-x 46 jqx2008 jqx2008 4096 2008-10-06 19:10 jqx2008 drwxr-xr-x 2 root root 4096 2008-09-30 17:43 soft 我把“-l”还为其他例如“...

by jqx55ah - C/C++ - 2008-10-07 00:02:26 阅读(1485) 回复(2)

相关讨论

下面是一个关于解释器的问题: /* Program source : showargs.c * * Program name : showargs */ #include int main(int argc, char *argv[]) { int i; for(i = 0; i < argc; i++) { printf("arg[%d]: %s\n", i, argv); } return 0; ...

by huangbt_unix - C/C++ - 2009-10-09 10:55:13 阅读(5301) 回复(11)

当我读到n = execl(post_rotate_exec, post_rotate_exec, cap_file.nname, NULL);这句时,小弟看了糊涂了,为什么调用execl函数时传了两个post_rotate_exec?大大们指教!多谢了! /* Do the post rotate exec */ if (post_rotate_exec[0]) { if ((n = fork()) == -1) { fterr_err(1, "fork()"); } else if (!n) { /* child */ n = execl(post_rotate_exec, post_rotat...

by lvs - C/C++ - 2004-10-19 09:09:16 阅读(2575) 回复(14)

麻烦大家帮我解释下啊,最主要是里面的参数啊,给个demo就更好了啊!

by xiehui888 - C/C++ - 2008-10-24 12:43:52 阅读(2711) 回复(6)

程序想实现的功能就是捕捉到SIGINT信号的时候重新启动,然后再捕捉到的时候再次重新启动。 exec函数执行的时候用一个全新的程序代替当前进程的数据段,堆栈和正文段。 在这里信号处理函数sig_handler中执行execl(PWD, "a.out", (char* )0)的时候,可执行程序a.out 代替了当前进程的数据段,堆栈和正文段,使程序重新运行 但是执行的时候: ./a.out hello, program starting! 1111111111111111111111111 ...

by xiaozhu2007 - C/C++ - 2008-01-14 13:30:27 阅读(3992) 回复(7)

目前我看的资料好像是不能传递变量的,但我想在程序中根据不一样的情况运行不一样的shell命令或加入一些参数,请教怎么实现呢??? 例如 system("echo print");这个print是否可定义成一个字符针指或一个字符数组,试了一下好像不行~!! [ 本帖最后由 守夜人 于 2006-2-24 15:49 编辑 ]

by 守夜人 - C/C++ - 2006-02-24 21:05:49 阅读(4955) 回复(7)

请教chroot()函数execl()函数联合使用时的问题 想实现一个非常简单的功能: 在子进程中chroot到指定目录,然后通过execl()函数执行指定路径下的sh。 结果是: chroot()成功执行,但是execl函数会报错,errno==2(Exec format errno)。 如下代码中设置了一个是否进行chroot的开关,发现如果不chroot,execl()函数可以正常执行指定路径下的sh,所以可以排除由execl()函数调用的函数无法运行的可能性。 程序如下:...

by cupful_xu - C/C++ - 2007-04-14 12:11:43 阅读(2796) 回复(0)

int execl(const charp a t* h n a m e, const char a* rg 0, ... /* (char *) 0 */); unix环境高级编程里第八章程序8-10后面的解释: execl("/home/liuhy/c/testinterp", "testinterp", "myarg1", "MY ARG2", (char *) 0) 注意,内核取e x e c l中的p a t h n a m e代替第一个参数( t e s t i n t e r p ),因为一般p a t h n a m e包含了较第一个参数 更多的信息。

by welcome008 - C/C++ - 2007-11-29 11:43:51 阅读(2925) 回复(9)

在程序中fork()一个子进程后,在该子进程执行execl()函数去执行另一个程序,屏幕可以显示该程序输出的结果,但是键盘的输入程序接受不到,而是仍然回显到屏幕上,请问有什么办法,让execl()执行后的进程仍接受键盘的输入呢,谢谢!

by renguoh - C/C++ - 2004-09-24 14:47:56 阅读(1625) 回复(2)

命令如下: echo "open 192.168.7.51 21\nuser username passwd \nbin \nget test1.C\nclose\nbye"|ftp -i -in 本命令在命令行可以执行

by dysnake - C/C++ - 2004-07-06 15:47:57 阅读(1536) 回复(5)
by Com_Net - C/C++ - 2005-11-03 18:42:59 阅读(1011) 回复(1)