LINUX应用编程
LINUX应用编程
lhh_qrsly
嵌入式领域软件和硬件知识分享
展开
-
Linux-execl()函数与execlp()函数
转自:http://www.jb51.net/article/71734.htmexecl()函数:执行文件函数头文件:#include<unistd.h>定义函数:intexecl(const char * path, const char * arg, …);函数说明:execl()用来执行参数path 字符串所代表的文件路径, 接下来的参数代表执行该文件时传递过去的argv(0),argv[1], …, 最后一个参数必须用空指针(NULL)作结束.返回值:如果执行成功则函数不翻译 2020-10-18 17:39:33 · 707 阅读 · 0 评论 -
LINUX系统之进程与进程控制
一、进程概念引子 程序运行在并发环境中的问题(1)运行过程不确定(2)结果不可再现1.进程定义 进程是程序在某个数据集合上的一次运行活动。数据集合是指软硬件环境,多个进程共存或共享的环境。2.进程的特征(1)动态性 进程是程序的一次执行过程,动态产生且动态消亡;(2)并发性 进程同其他进程一起向前推进;(3)异步性 进程按照各自的速度向前推进(每一个进程按照自定逻辑,不考虑其他进程的运行,各自占用CPU);(4)独立性 进程是系统分配资源和调度CPU的单位(但是有了线程翻译 2020-10-18 17:24:43 · 266 阅读 · 0 评论 -
LINUX操作系统之进程通信
引子 进程通信的方式 △信号通信△管道通信△消息队列△共享存储区一、信号通信1.什么是信号(1)信号是Linux进程之间一种重要的通信机制;(2)信号的作用是为了通知进程某个时间已经发生;(3)信号的发出是及时的,但是信号的响应可能会有延后,收到信号的进程在当前执行处设置断点,然后立即转为执行信号处理函数,执行结束后,会回到断点,继续执行之前的操作,这一点类似中断机制;(4)信号机制其实是在软件层次上对中断机制的一种模拟,一个进程收到信号和收到中断请求可以说是一样的;(5)中断和信翻译 2020-10-18 16:22:44 · 592 阅读 · 0 评论 -
理解孤儿进程和僵尸进程的定义
当主进程创建的C、D子进程比父进程先结束,在fork ()/execve()过程中,假设子进程结束时父进程仍存在,而父进程fork()之前既没安装SIGCHLD信号处理函数调用waitpid()等待子进程结束,又没有显式忽略该信号,则子进程成为僵尸进程,无法正常结束,此时即使是root身份kill -9也不能杀死僵尸进程。补救办法是杀死僵尸进程的父进程(僵尸进程的父进程必然存在),僵尸进程成为"孤儿进程",过继给1号进程init,init始终会负责清理僵尸进程。僵尸进程的避免:(1) 父进程通过wait原创 2020-10-18 13:00:56 · 96 阅读 · 0 评论 -
Linux中fork,vfork和clone详解
fork,vfork,cloneUnix标准的复制进程的系统调用时fork(即分叉),但是Linux,BSD等操作系统并不止实现这一个,确切的说linux实现了三个,fork,vfork,clone(确切说vfork创造出来的是轻量级进程,也叫线程,是共享资源的进程)fork#include <stdio.h>#include <stdlib.h>#include <sys/types.h>#include <unistd.h>int ma翻译 2020-10-18 12:56:27 · 404 阅读 · 0 评论