
简介
该用户还未填写简介
擅长的技术栈
可提供的服务
暂无可提供的服务
①匿名存在:没有文件名,只在内存中存在。②亲缘要求:只能用于父子进程或兄弟进程间通信。③临时性:管道随进程的结束而自动销毁。#include <unistd.h>#include <stdio.h>#include <stdlib.h>int main() {int pipefd[2];// pipefd[0]用于读,pipefd[1]用于写pid_t pid;char buf[256];// 1
退出状态,终止的进程会通知父进程,自己使如何终止的。任何情况下,负进程都能使用wait,waitpid获得这个状态,以及资源的回收。子进程是进程的副本。2)exit,c库函数,会执行io库的清理工作,关闭所有 的流,以及所有打开的文件。④子进程复制父进程的0到3g空间和父进程内核中的PCB,但id号不同。进程是一个程序执行的过程,会去分配内存资源,cpu的调度。Linux中的状态,运行态,睡眠态,
退出状态,终止的进程会通知父进程,自己使如何终止的。任何情况下,负进程都能使用wait,waitpid获得这个状态,以及资源的回收。子进程是进程的副本。2)exit,c库函数,会执行io库的清理工作,关闭所有 的流,以及所有打开的文件。④子进程复制父进程的0到3g空间和父进程内核中的PCB,但id号不同。进程是一个程序执行的过程,会去分配内存资源,cpu的调度。Linux中的状态,运行态,睡眠态,
预处理、编译、汇编、链接四阶段 toolchain 的拆解,让我第一次把“写下的.c”与“跑起来的 ELF”之间的黑盒打开:宏在预处理期做纯文本替换,因此必须加括号避免副作用;链接程序的主要工作就是将有关的目标文件彼此相连接,也即将在一个文件中引用的符号同该符号在另外一个文件中的定义连接起来,使得所有的这些目标文件成为一个能够被操作系统装入执行的统一整体。<>---表示找包含的文件,到系统默认的路
尤其把数组名当指针传递后,我真正理解了“地址 + 长度”这对黄金搭档:数组连续存放的本质让 int *a 与 int a[] 等价,而长度参数则补足了指针丢失的维度信息。c语言中所有标识符--先定义,后使用,main的数是整个程序的入口函数,定义的位置在main之前,如果在main之后,在使用前在做一下函数声明(将函数头复制加上分号)。若改为动态二维数组,则需 malloc 到堆,再手动释放,避免