linux_系统编程
文章平均质量分 70
lv_Amelia
这个作者很懒,什么都没留下…
展开
-
进程控制:结束进程、等待进程结束、避免僵尸进程
一、结束进程 void exit(int value); void _exit(int value); exit()和_exit()函数功能一样,主要的区别在于:exit()是标准库函数,会刷新缓冲区,_exit()是系统调用,不会刷新缓冲区。#include <stdio.h>#include <stdlib.h>#include <unistd.h>int main(int a原创 2018-03-21 19:59:58 · 448 阅读 · 0 评论 -
进程间通信:管道、消息队列、信号量、共享内存
进程间通信概述 进程是一个独立的资源分配单元,不同的进程之间的资源是独立的,不能在一个进程中直接访问另一个进程的资源。 但是,进程并不是独立的,不同的进程间需要信息的交互和状态的传递等。因此需要进程间通信(IPC: Inter Process Communication)。 linux操作系统支持的主要进程间通信机制有: 一、管道(pipe) 1、特点: (1) 它是原创 2018-03-29 19:43:44 · 313 阅读 · 0 评论 -
线程同步与互斥:互斥锁、读写锁、POSIX无名信号量
同步与互斥: 互斥是指两个线程不能同时运行,他们会相互排斥,必须等一个线程运行完,另一个才能运行; 同步也是不能同时运行,但是他们必须按照一定的顺序执行。一、线程原型 线程的数据类型为:pthread_t#include <pthread.h>pthread_t pthread_self(void); //获取线程idint pthread_create( pthread_t原创 2018-03-30 15:15:21 · 278 阅读 · 0 评论 -
linux系统编程--fork()/vfork()函数
需要的头文件 #include <sys/types.h> #include <unistd.h>1、fork() pid_t fork(void); 成功:子进程返回0,父进程返回子进程的ID 失败:-1 那子进程长什么样呢? 简单来说,一个进程调用fork()之后,系统会给新的进程分配资源,例如存储数据和代码的空间。然后把原来进程的所有值都复制到新的进程中,原创 2018-03-21 15:17:26 · 263 阅读 · 0 评论