![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Linux
文章平均质量分 81
学习过程的点点滴滴 笔记为主
心向光明呀
不进则退
展开
-
信号 发信号 进程接收信号后响应信号
信号 信号的概念 信号是系统响应某个条件而产生的事件,进程接收>到信号会执行相应的操作。 与信号有关的系统调用在“signal.h”头文件中有声明 响应信号 在键盘上按下 Ctrl+c 时,会给当前终端前台执行的进程发送 SIGINT 信号: 正常Ctrl+c 终止执行 #include<stdio.h> #include<stdlib.h> #include<unistd.h> #include<string.h> #inc原创 2021-11-14 11:15:58 · 701 阅读 · 0 评论 -
进程间通信(管道)
进程间通信(ipc):管道 信号量 共享内存 消息队列 套接字 管道文件:本身在磁盘中,打开文件以后会在内存中分配空间. 有名管道:mkfifo,mkfifo(); 无名管道:pipe(); 管道为空,读会阻塞 管到写满,写会阻塞 管道写端关闭,读端返回为0 利用管道实现进程间通信 一个进程向管道文件写数据一个文件从管道中读数据 向管道中写数据 #include<stdio.h> #include<stdlib.h> #include<unistd.h&原创 2021-11-14 10:50:11 · 496 阅读 · 0 评论 -
fork 进程复制 父子进程共享文件偏移量 exec替换进程
printf函数以及缓冲区 先打印hello 在睡眠3s钟 去掉 \n 之后 先睡眠3s在打印hello 正常认知:代码是顺序执行 printf执行完后才能执行sleep. 由于缓冲区的作用,退出程序才把缓冲去的内容显示到了屏幕上. 打印的内容是如何显示到屏幕上的 当有以下三种情况时,缓冲区才会把数据传输到标准输出设备(显示器)中进行输出 1.缓冲区满 2.程序结束时 3.强制刷新缓冲区 “\n” fflush(stdout)可以达到此效果 缓冲区的内容提交给内核 利用writ原创 2021-11-14 10:32:54 · 537 阅读 · 0 评论 -
10_10 库文件(静态库 动态库)生成库文件的步骤
库文件:预先编译好的方法的集合 静态库:libxx.a 共享库:libxx.so printf() -> 实现在 c库 libc.so 库放在 /usr/lib… 头文件放在/usr/include 静态库的生成 先定义一个简单的 减法函数 sub2() 并且在 main2中调用它 尝试输出执行结果 发生错误 未在main2中声明 sub2函数 在main2.c中加上声明 或者 生成sub.h 并在main2.c中 引入头文件 #include"sub.h" 已达到声明的目的 再次尝.原创 2021-10-26 17:34:37 · 858 阅读 · 0 评论