#include
by jqx55ah - C/C++ - 2008-10-07 00:02:26 阅读(1485) 回复(2)
下面是一个关于解释器的问题:
/* Program source : showargs.c *
* Program name : showargs */
#include
当我读到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...
程序想实现的功能就是捕捉到SIGINT信号的时候重新启动,然后再捕捉到的时候再次重新启动。 exec函数执行的时候用一个全新的程序代替当前进程的数据段,堆栈和正文段。 在这里信号处理函数sig_handler中执行execl(PWD, "a.out", (char* )0)的时候,可执行程序a.out 代替了当前进程的数据段,堆栈和正文段,使程序重新运行 但是执行的时候: ./a.out hello, program starting! 1111111111111111111111111 ...
目前我看的资料好像是不能传递变量的,但我想在程序中根据不一样的情况运行不一样的shell命令或加入一些参数,请教怎么实现呢??? 例如 system("echo print");这个print是否可定义成一个字符针指或一个字符数组,试了一下好像不行~!! [ 本帖最后由 守夜人 于 2006-2-24 15:49 编辑 ]
请教chroot()函数和execl()函数联合使用时的问题 想实现一个非常简单的功能: 在子进程中chroot到指定目录,然后通过execl()函数执行指定路径下的sh。 结果是: chroot()成功执行,但是execl函数会报错,errno==2(Exec format errno)。 如下代码中设置了一个是否进行chroot的开关,发现如果不chroot,execl()函数可以正常执行指定路径下的sh,所以可以排除由execl()函数调用的函数无法运行的可能性。 程序如下:...
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包含了较第一个参数 更多的信息。
在程序中fork()一个子进程后,在该子进程执行execl()函数去执行另一个程序,屏幕可以显示该程序输出的结果,但是键盘的输入程序接受不到,而是仍然回显到屏幕上,请问有什么办法,让execl()执行后的进程仍接受键盘的输入呢,谢谢!
命令如下: echo "open 192.168.7.51 21\nuser username passwd \nbin \nget test1.C\nclose\nbye"|ftp -i -in 本命令在命令行可以执行