进程的执行和进程的结束

news/2024/9/24 9:19:54/

exec函数族:

作用:可以在一个程序中启动另外一个功能,用新的进程段替换当前进程的段.

exec函数族用于替换当前进程的映像,允许程序在运行时加载并执行新的程序代码。

execl: 

l:list   path:要执行的文件的路径  arg:要执行的文件的参数,以NULL结尾。

execl("/bin/cp","cp","1.txt","5.txt",NULL);
execv

v:指针数组 path:要执行的文件的路径  arg:要执行的文件放入一个数组,传数组名 

execv("/bin/cp",arg);
execlp:

l:list  除了第一个参数与上述不一样之外,其他参数都相同。不需要写入文件路径,只需要传入可执行文件的文件名,可执行文件必须在/bin目录中。

execlp("cp","cp","1.txt","5.txt",NULL);
execvp

execvpe

e:可以给要执行的程序传递一个环境变量。

execvle

进程的结束

1.正常结束:

1)return 0;

2)exit;C库函数。函数调用时,会调atexit函数。

造成正常的进程结束;库函数 刷新缓冲区

atexit 退出处理函数 需要注册

a. main返回   b. exit()

c.最终调用顺序与注册顺序相反 d.函数可以多次注册。

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
int *q = NULL;
void cleanup1(void)
{free(q);printf("----cleanup 1---\n");
}
void cleanup2(void)
{printf("----cleanup 2---\n");
}int main(int argc, const char *argv[])
{atexit(cleanup1);atexit(cleanup2);int *p = malloc(4);q = p;*p = 4;printf("*p = %d\n",*p);printf("hello world!\n");//_exit(0);//_exit(0);return 0;
}

3)_exit;

函数调用时,不会调到atexit函数

2.异常终止:

absort()

signal;


http://www.ppmy.cn/news/1508971.html

相关文章

2022年第一至第四批专精特新“小巨人”企业数据,企业名称、经营范围、公示批次等字段可查询

基本信息. 数据名称: 第一至第四批专精特新“小巨人”企业数据 数据格式: Shpxlsx 数据时间: 2022年 数据几何类型: 点 数据坐标系: WGS84坐标系 数据来源&#xff1a;《中国城市统计年鉴》中统计的工业企业数相关数据&#xff0c;对象为地级及以上的城市&#xff0c;统计…

vue RSA加密解密(解决加密过长,解密过长返回为null的问题)

1安装 npm i jsencrypt2.rsa.js /* 产引入jsencrypt实现数据RSA加密 */ import JSEncrypt from jsencrypt // 处理长文本数据时报错 jsencrypt.js Message too long for RSA /* 产引入encryptlong实现数据RSA加密 */ import Encrypt from encryptlong // encryptlong是基于js…

浅谈Sql Server 视图

一、视图简介 SQL 视图&#xff08;Views&#xff09;是一种虚拟表&#xff0c;是基于 SQL 查询结果生成的。这些虚拟表可以包含来自一个或多个表的数据&#xff0c;并且可以像表一样查询&#xff1b;视图是一个表中的数据经过某种筛选后的显示方式&#xff0c;或者多个表中的数…

Python | Leetcode Python题解之第335题路径交叉

题目&#xff1a; 题解&#xff1a; class Solution:def isSelfCrossing(self, distance: List[int]) -> bool:n len(distance)# 处理第 1 种情况i 0while i < n and (i < 2 or distance[i] > distance[i - 2]):i 1if i n:return False# 处理第 j 次移动的情况…

Docker Swarm管理

Docker概念 Docker Swarm是Docker公司2014年出品的基于Docker的集群管理调度工具。能够将多台主机构建成一个Docker集群&#xff0c;并结合Overlay网络实现容器调度和互访 Docker Swarm使用GO语言开发&#xff0c;从Docker 1.12.0版本开始&#xff0c;Docker Swarm已经内置于D…

无字母数字webshell之命令执行

文章目录 无字母数字的webshell构造技巧php7下简单解决问题php5下解决问题glob开始操作 无字母数字的webshell构造技巧 <?php if(isset($_GET[code])){$code $_GET[code];if(strlen($code)>35){die("Long.");}if(preg_match("/[A-Za-z0-9_$]/",$c…

论文分享|MLLMs中多种模态(图像/视频/音频/语音)的tokenizer梳理

本文旨在对任意模态输入-任意模态输出 (X2X) 的LLM的编解码方式进行简单梳理&#xff0c;同时总结一些代表性工作。 注&#xff1a;图像代表Image&#xff0c;视频代表Video&#xff08;不含声音&#xff09;&#xff0c;音频代表 Audio/Music&#xff0c;语音代表Speech 各种…

unity--webgl 访问本地index.html

目录 1:使用本地服务器 1.1 使用 Python 的 SimpleHTTPServer 1.2 使用 Node.js 的 http-server 2&#xff1a;让其他人通过 IP 地址来访问你的 Unity WebGL 项目 2.1: 确保服务器可访问 2.2 获取公共 IP 地址 2.3 配置本地服务器 1.使用 Python 的 SimpleHTTPServer 2…