关于execl 执行程序问题,可以这样执行??

发布于 2022-10-15 09:25:20 字数 1665 浏览 23 评论 0

我找了一份关于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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

黑凤梨 2022-10-22 09:25:20

execl是生成另一个进程,调用子函数是同在一个进程里

稍尽春風 2022-10-22 09:25:20

execl是生成另一个进程,调用子函数是同在一个进程里
whaaat 发表于 2011-04-18 09:39

    谢谢,明白了,其实execl作为一个进程来处理看待,

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文