标准IO函数 打开文件 1.fopen() #include <stdio.h> 定义: FILE *fopen(const char *filename, const char *mode); 功能: 打开一个文件,并返回一个指向该文件的指针(文件流)。 参数: filename:要打开的文件名。 mode:打开模式,可以是“r”、“…
通信方式 1.无名管道 2.有名管道 3.信号 4.共享内存 5.消息队列 6.信号灯集 7.套接字 无名管道 特点 1.只能在具有亲缘关系的进程间通信 2.半双工的通信方式,具有固定的读端fd[0]和写端fd[1] 3.管道可以看成是一种特殊的文件,对于它的读写可以使用文件IO如read、write函数. 4.管道是基于文件描述符的通信方式。当一…
线程同步 概念 线程同步是指多个线程在同一时间访问同一资源时,为了保证数据的正确性和一致性,需要对线程的执行顺序进行控制,以保证数据的完整性和正确性。 信号量 信号量的概念 信号量是一个非负整数,其值代表系统中某一资源可供使用的数量,由信号量决定线程是继续执行还是阻塞等待。 信号量是一个受保护的值,只能通过三种方式来访问:初始化、P操作(申请资源)…
线程的概念 线程(Thread)是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位。一个进程可以包含多个线程,这些线程共享进程的资源,如内存空间和文件描述符,但每个线程有自己的栈和寄存器状态。 进程和线程的异同 相同点: 都为系统提供并发执行的能力 不同点: 资源和调度:进程是系统资源分配的最小单位,线程是资源调度的最…
创建进程 fork() 定义: pid_t fork(void); 功能: 在当前的进程中,创建一个子进程 返回值: 成功: 在父进程中:返回子进程的进程号(>0) 在子进程中:返回值为0 失败:-1,并设置errno 特点 1.子进程几乎拷贝了父进程的全部内容。包括代码、数据、系统数据段中的pc值、栈中的数据、父进程中打开的文件等;但它们的…
程序和进程区别 程序: 编译好的可执行文件; 存放在磁盘上的指令和数据的有序集合; 程序是静态的,没有任何执行概念。 进程: 一个独立的可调度的任务; 执行一个程序所分配的资源的总称; 进程是程序的一次执行过程; 进程是动态的,包括创建、调度、执行、消亡。 进程特点 1.系统会为每个进程分配0-4g的虚拟空间,其中0-3g是用户空间,每个进程独有;…
库的定义 库就是把常用的函数的目标文件打包在一起,提供函数调用的接口,以便后续的使用或者发布,库的本质是可执行程序的二进制形式。 在不同的操作系统中,库不可兼容,在Linux的平台下,静态库文件的后缀是 .a ,动态库的后缀是 .so;在window的平台下,静态库文件的后缀是 .lib ,动态库的后缀是 .dll。 在Linux操作系统中,库文件…
概念 在posix(可移植操作系统接口)中定义的一组输入输出的函数 特点 1.没有缓冲机制,每次操作都会经过系统调用,效率较低 2.围绕文件描述符来操作,0(标准输入)、1(标准输出)、2(标准错误)、...... 3.默认打开0、1、2 4.除目录外其他任意类型文件都可以操作 函数 打开文件 open 定义: int open(const cha…
一、概念 在C语言库中定义一系列对文件输入输出的函数。 二、特点 1.缓冲机制 标准IO的优点就是通过缓冲机制减少系统调用的次数,提高效率,输出的数据暂存在缓冲区,缓冲区刷新或满时输出。 2.流 文件流是一种用于处理文件输入和输出的抽象概念,文件流将文件和C语言的数据处理机制连接起来,使数据的写入(输入流)和读出(输出流)更方便。 默认打开了三个流…