关于execl 执行程序问题,可以这样执行??
我找了一份关于execl程序,如下:
if (!fork()) { /* 再次创建子进程 */
execlp("./openfexec", "./openfexec", (char *)0); /* 执行程序 */
printf("It is an error to print this line out\n");
openfexec.c 如下:
#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <unistd.h>
int main()
{
int fd = 3; /* 原进程中只打开过一个文件,所以描述符为 3 */
long pos;
pos = lseek(fd, 0L, SEEK_CUR);
if (pos == (off_t)-1) {
perror("openfexec");
exit(1);
}
printf("Current position in openfexec is %ld\n", pos);
pos = lseek(fd, 50L, SEEK_CUR); /* 设置文件位置到 50 */
if (pos == (off_t)-1) {
perror("openfexec");
exit(2);
}
printf("New position in openfexec is %ld\n", pos);
return 0;
}
可以execl这样调用openfexec.c吗?与调用一个子函数没什么区别啊??
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
execl是生成另一个进程,调用子函数是同在一个进程里
谢谢,明白了,其实execl作为一个进程来处理看待,