1、例子
/*exec函数示例*/
#include <stdio.h>
#include <unistd.h>
int main(void)
{
int flag;
pid_t pid;
char *const argv[] = {"%U", "--user-data-dir=/home/Administrator/.chromiun", NULL};
//exec把当前进程印象替换成新的程序文件,故调用进程被覆盖
// 如果不指定全路径,则只检查PATH变量中存储的命令
if((pid = fork())==0) {
printf("in child process 1......\n");
//flag = execvp("./hello", NULL);
//envp变量的用
char *envp[]={"PATH=.", NULL};
flag = execve("hello", NULL, envp);
if(flag == -1)
printf("exec error!\n");
}
if((pid = fork())==0) {
printf("in child process 2......\n");
//执行ls命令
flag = execlp("ls", "-al", NULL);
if(flag == -1)
printf("exec error!\n");
}
if((pid = fork())==0) {
printf("in child process 3......\n");
//启动chrome浏览器
flag = execv("/usr/bin/chromium-browser", argv);
if(flag == -1)
printf("exec error!\n");
}
printf("in parent process ......\n");
return 0;
}
2. hello程序
#include <stdio.h>
int main(void)
{
printf("Hello world!\n");
return 0;
}
3. 运行结果
root@ubuntu:.../Linux_C/Process# ./exec_t
in child process 1......
in parent process ......
in child process 3......
root@ubuntu:.../Linux_C/Process# in child process 2......
Hello world!
exec_t fifo_read.c fork_1.c hello.c msg_send.c signal_1.c
exec_t.c fifo_write.c hello msg_receive.c semop_P_V.c
已在现有的浏览器会话中创建新的窗口。
分享到:
相关推荐
1.exec函数族 exec 为 execute(执行),exec 函数族用来替换调用进程所执行的程序,该进程的用户空间代码和数据完全被新程序替换,从新程序的启动例程开始执行,替换前后进程的 PID 不会改变。 exec函数族中包括6个...
exec函数和shell_exec函数都可以用来执行Linux命令,但它们获取命令执行结果的方式不同。exec函数只能获取命令的最后一行输出,而shell_exec函数可以获取命令的所有输出。具体来说,当需要执行的命令返回多行结果时...
Linux C 函数使用手册是C语言开发者在Linux环境下不可或缺的参考资料。CHM(Compiled Help Manual)格式是一种由微软开发的帮助文档格式,它将文本、图片等信息编译成单一的二进制文件,便于快速检索和查看。在这个...
这份"Linux c 函数使用手册"提供了一套全面的参考资源,帮助开发者深入理解和运用这些函数。以下是一些关键知识点的概述: 1. **标准库函数**: - `stdio.h`:包含输入/输出函数,如`printf`用于格式化输出,`...
5. **进程与线程**:Linux提供了一套丰富的系统调用来管理进程和线程,如fork()创建新进程,exec()系列函数执行新的程序,pthread_create()创建线程,pthread_join()等待线程结束等。 6. **信号处理**:通过...
《Linux C 函数详解》是一本专为程序员和系统开发者设计的工具书,全面而深入地探讨了在Linux环境下使用C语言进行程序开发时所涉及的各种函数。这本书旨在帮助读者理解并熟练掌握C语言的标准库函数,以及在Linux系统...
`execv()`函数使用当前进程的环境。 5. `execvp()`:与`execv()`相似,但会搜索`PATH`环境变量查找可执行文件。 6. `execve()`:最通用的`exec`函数,它接受三个参数:程序路径、参数数组和环境变量数组。这个函数...
5. **数组与指针**:C语言中数组和指针的关系密切,如通过指针访问数组元素,使用memcpy和memset函数进行内存块的复制和清零。 6. **错误处理**:errno全局变量和perror函数用于记录和打印错误信息,帮助调试程序。...
《Linux C 函数使用手册》是一本非常实用的资源,主要针对在Linux环境下进行C语言编程的开发者。手册详尽地介绍了各种C语言函数的使用方法,为开发者提供了方便快捷的查询工具。通过这本书,你可以深入理解Linux C...
4. **进程操作篇**:讨论了如何在Linux中创建、管理、通信和调度进程,如fork()、exec()、wait()和signal()函数,这些都是实现并发编程的基础。 5. **文件权限控制篇**:讲解如何使用chmod、chown、chgrp等命令,...
在Linux环境中,C语言可以使用套接字接口进行网络通信,如`socket`, `bind`, `listen`, `accept`, `connect`, `send`, `recv`等函数。 九、线程与同步 1. `pthread_create`, `pthread_join`: 创建和等待线程结束。 ...
通过《Linux C 函数全集》这本书,开发者能够全面了解和掌握在Linux环境中使用C语言进行系统级编程所需的各种函数和技巧,从而提高开发效率和代码质量。书中可能详细解释了每个函数的用途、参数、返回值以及示例代码...
- 进程控制:fork()、exec()、wait()系列函数。 - 线程管理:pthread_create()、pthread_join()等。 以上是C语言在Linux环境下的一些核心知识点,本书“Linux C函数详解”会详细讲解这些概念并提供丰富的实例,...
例如,`open`函数用于打开一个文件或设备,`read`和`write`则用于从文件或向文件传输数据,而`fork`和`exec`则涉及进程的创建和执行新的命令。掌握这些系统调用的使用,可以让开发者更深入地理解操作系统如何工作,...
在Linux操作系统中,进程是程序执行的实例。本篇文章主要探讨了几个与进程管理相关的函数:atexit、execl、execlp以及execv。这些函数允许程序员在程序执行的不同阶段进行控制,如设置程序结束前要调用的函数,或者...
Linux C函数库,也称为GNU C Library(通常缩写为glibc),提供了丰富的API供开发者使用。这份“Linux C函数速查手册”是针对C语言程序员的宝贵资源,帮助他们快速查找和理解各种函数的用法。 手册分为两个版本:...
在编写Linux C程序时,通常不需要直接调用系统调用,而是使用标准C库中提供的库函数,例如stdio.h、stdlib.h等头文件中定义的函数。当库函数不能满足需求时,才直接使用系统调用。这可以通过包含头文件unistd.h、sys...
《Linux C函数详解》这本书是Linux/unix环境下C/C++开发者的重要参考资料,它详细解析了在这些操作系统中广泛使用的C语言函数。对于那些希望深入理解系统级编程或提高C编程技能的人来说,这本书提供了宝贵的洞见。 ...
Linux提供了丰富的进程控制函数,如`fork` 创建子进程,`exec` 家族函数替换当前进程执行新的程序,`wait` 和 `waitpid` 用于父进程等待子进程结束。 7. **线程操作**: 在多线程编程中,`pthread_create` 创建新...
本文将基于"Linux函数详解(函数大全)"这一主题,深入解析Linux C函数的使用和重要性,涵盖从基本输入输出到文件操作,再到进程控制等多个方面。 首先,我们从最基础的输入输出函数开始,如`printf`和`scanf`,...