进程控制a-爱代码爱编程
创建子进程 如何创建一个进程:当我们执行一个可执行文件时,便会创建一个进程。 如何创建一个子进程: pid_t fork(void); 返回值:失败返回-1 成功:父进程返回子进程的pid,子进程返回0 注:不是fork能够返回两个值,是在父子进程中返回的值不同。 那如何做到的呢?我们看下fork()创建子进程做了哪些事情。(我们前面是不是说过
代码编织梦想
创建子进程 如何创建一个进程:当我们执行一个可执行文件时,便会创建一个进程。 如何创建一个子进程: pid_t fork(void); 返回值:失败返回-1 成功:父进程返回子进程的pid,子进程返回0 注:不是fork能够返回两个值,是在父子进程中返回的值不同。 那如何做到的呢?我们看下fork()创建子进程做了哪些事情。(我们前面是不是说过
C++程序员必会的知识储备 程序与进程 程序: 程序是指编译好的二进制文件,存储在磁盘上,不占用系统资源(CPU、内存、设备等),程序中包含了一系列信息,这些信息描述了如何在运行时创建以进程。--不妨将程序看作一个数据集合 二进制格式标识:每一程序文件都包含用于描述可执行文件格式的元信息。内核利用此信息来解释文件中的其它信息。(Li
C++程序员必会知识 int access(const char *pathname,int mode); //access使用权 作用:判断某个文件是否有某个权限,或者判断文件是否存在 参数: pathname:文件路径 mode
IPC(进程间通信) 进程是操作系统分配资源的基本单位,也就是说进程间的资源是独立的。一个进程无法直接访问另一个进程的资源。 但是进程并不是孤立存在的,进程间需要进行数据传输、进程控制、通知事件、资源共享,所以进程间需要通信。 进程的用户空间对于每个进程而言是独立的,所有内核空间都是共享的。进程的内核空间是所有进程共享的。其实是mmu映射的物理内存属
用画板画的图,可能不那么好看(见谅) 进程间通迅概念 进程是一个独立的资源分配单元,不同的进程(这里所说的进程通常是指用户进程)之间的资源是独立的,没有关联,不能再一个进程中直接访问另一个进程的资源。(与线程的区别出来了,同一个进程间的线程可以共享全局变量,如此以来就可以节省很多开销)但是,进程不是孤立的,不同的进程需要进行信息的交互和状态的传递等,因
孤儿进程 孤儿进程:父进程先于子进程结束,则子进程成为孤儿进程。子进程的父进程变成init进程。init-->1号进程,被称为进程孤儿院。【孤儿进程是没有危害的】 init进程会循环的wait()它的已经退出的子进程。这样,当一个子进程凄凉的结束了其生命的时候,init进程就会代表党和政府出面处理它的一切善后工作,
C++程序员必会的知识 目录操作函数 int mkdir(const char *pathname,mode_t mode); //创建一个目录 #include <stdio.h> #include <sys/stat.h> #include <sys/types.h> #include <fcn
C++程序员必会的知识 文件IO 如何理解输入输出流? 站在文件的角度:输入流—>从内存向文件中写入I,输出流从文件中向内存中写东西O站在内存的角度:输入流—>从文件向内存中写入I,输出流从内存中向文件中写东西O C库函数如何操作文件 FILE:是一个结构体类型,其中包括三个重要的属性,文件描述符、文件读写指针、I/O缓冲区的地址
C++程序员必备知识 什么是GDB?? GDB是GNU软件系统社区提供的调试工具,同GCC配套组成一套完整的开发环境,GDB是Linux和许多许多Unix系统中的标准开发环境。GDB主要的四个功能: 启动程序,可以按照自定义的要求随心所欲的运行程序可以让被调试的程序在所指定位置的断点出停住(断点可以是条件表达式)当程序被停止时,可以检查此时程序所
C++程序员必会知识 什么是makefile?? 一个工程中的源文件不计其数,其按类型,功能,模块分别放在若干个目录中。Makefile文件定义了一系列的规则来指定哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能操作,因为Makefile文件镜像一个shell脚本一样,也可以执行操作系统的命令。Makefile带来的
C++程序员必会的知识储备 什么是库??? 库文件是计算机上的一类文件,可以简单的把库文件看成一种代码仓库,它提供给使用者一些可以直接拿来用的变量、类、函数等库是一种特殊的程序,编写库文件和编写一般的程序的区别不大,只是库文件不能单独运行库文件有两种,静态库和动态库(共享库) ,静态库在程序的链接阶段就被复制到了程序中,而动态库在链接阶段只是被记录的一
每个喜欢C++程序员的必备知识储备 一、GNU编译 GCC的编译过程(4个过程5个文件) 编译工具链 gcc的编译选项 -E 将源文件预处理为预处理后的源文件 -S 将预处理后的源文件编译成汇编文件 -c 将汇编文件汇编成二进制文件
文章目录 一、信号的概念二、信号名称三、信号种类3.1、不可靠信号3.2、可靠信号3.3、实时信号进程对信号的响应四、信号发送4.1、kill函数4.2、raise函数4.3、sigqueue函数4.4、alarm函数4.5、setitimer函数4.6、abort函数五、信号的安装5.1、signal函数5.2、sigaction函数六、信号集6
文章目录 一、管道概述1.1、管道概念1.2、管道特点1.3、管道创建(通过pipe函数)1.4、管道应用实例1.5、管道读写规则1.6、管道的局限性二、fifo有名管道2.1、有名管道概念2.2、有名管道创建2.3、名管道的打开规则2.4、有名管道读写规则 一、管道概述 1.1、管道概念 管道是Unix中最古老的进程间通信的形式。 我们
文章目录 一、进程概念1.1、进程与程序1.2、进程结构1.3、进程三种基本状态1.4、进程三种状态间的转换1.5、进程标识二、进程创建2.1、fork系统调用2.2、exec族三、exit和_exit3.1、exit和_exit函数说明3.2、exit和_exit函数语法四、wait和waitpid4.1、wait和waitpid函数说明4.2、
设备与文件 Linux采用文件系统管理硬件设备,所有的设备都看成是特殊的文件,从而将硬件设备的特性及管理细节对用户隐藏起来,实现设备无关性。 设备管理的特点 ①每个设备都对应文件系统中的一个索引节点,都有一个文件名。 ②应用程序通常可以通过系统调用open( )打开设备文件,建立起与目标设备的连接。 ③对设备的使用类似于对文件的存取。 ④设
人们通常利用 make 工具来自动完成编译工作。这些工作包括:如果仅修改了某几个源文件,则只重新编译这几个源文件;如果某个头文件被修改了,则重新编译所有包含该头文件的源文件。利用这种自动编译可大大简化开发工作,避免不必要的重新编译。 Makefile make 工具通过一个称为 makefile 的文件来完成并自动维护编译工作。makefil
Linux体系中的shell编程在实现系统管理与维护、系统使用、用户环境定制等方面作用突出。 使用shell写的程序通常也称为脚本。 在用户主目录中,在/etc目录中,随处可见脚本文件。 脚本是由各种变量、表达式、命令等通过一定的逻辑组装而成的,具有顺序解释执行的特性。 文章目录 1、Shell脚本基本结构1.1、Shell
常用命令 1、命令行 history 查看历史命令 ! 编号 执行当前命令 ls 查看当前的文件夹所有内容 ls -a 查看隐藏文件 ls -a -l(ls -al) 查看文件的详细信息 ls p* 查看文件名带p的文件(*通配符) pwd 查看当前路径(我在哪) whoami 当前用
目录 线程认识线程什么是线程线程与进程关系线程间资源共享情况线程优缺点线程原语pthread_createpthread_selfpthread_exitpthread_joinpthread_cancelpthread_detachpthread_equal线程终止方式线程同步线程为什么要同步互斥量临界区(Critical Section)临界区