- 博客(7)
- 资源 (1)
- 收藏
- 关注
原创 Linux 线程同步、互斥锁、生产者消费者模型详解
线程同步:协同步调,对公共区域数据按序访问。防止数据混乱,产生与时间有关的错误。锁的使用:建议锁!对公共数据进行保护。所有线程【应该】在访问公共数据前先拿锁再访问。但,锁本身不具备强制性。使用mutex(互斥量、互斥锁)一般步骤:pthread_mutex_t 类型。 1. pthread_mutex_t lock; 创建锁2 pthread_mutex_init; 初始...
2019-12-17 17:13:40 262
原创 Linux 守护进程详解
守护进程:daemon进程。通常运行与操作系统后台,脱离控制终端。一般不与用户直接交互。周期性的等待某个事件发生或周期性执行某一动作。不受用户登录注销影响。通常采用以d结尾的命名方式。守护进程创建步骤:1. fork子进程,让父进程终止。2. 子进程调用 setsid() 创建新会话3. 通常根据需要,改变工作目录位置 chdir(), 防止目录被卸载。4. 通常根据需要,...
2019-12-17 17:12:37 229
原创 Linux 信号详解
信号共性:简单、不能携带大量信息、满足条件才发送。信号的特质:信号是软件层面上的“中断”。一旦信号产生,无论程序执行到什么位置,必须立即停止运行,处理信号,处理结束,再继续执行后续指令。所有信号的产生及处理全部都是由【内核】完成的。信号相关的概念:产生信号: 1. 按键产生 2. 系统调用产生 3. 软件条件产生 4. 硬件异常产生 5. 命令产生概念:...
2019-12-17 17:12:07 212
原创 Linux 进程间通讯详解
pipe管道: 用于有血缘关系的进程间通信。 ps aux | grep ls | wc -l父子进程间通信:兄弟进程间通信:fifo管道:可以用于无血缘关系的进程间通信。命名管道: mkfifo 无血缘关系进程间通信: 读端,open fifo O_RDONLY 写端,open fifo O_WRONLY文件实现进程间通信:打开的文件是内核中的一块缓冲区。...
2019-12-17 17:11:31 112
原创 Linux 进程、管道详解
gdb调试:设置父进程调试路径:set follow-fork-mode parent (默认)设置子进程调试路径:set follow-fork-mode childexec函数族:使进程执行某一程序。成功无返回值,失败返回 -1int execlp(const char *file, const char *arg, ...); 借助 PATH 环境变量找寻待执行程序 参...
2019-12-17 17:10:51 234
原创 Linux 递归遍历目录 dup、fork、fcntl详解
./a.out ls.c /home/itcast/28_Linux ./abc/ /home/itcast/28_Linux/testdir/递归遍历目录:ls-R.c1. 判断命令行参数,获取用户要查询的目录名。 int argc, char *argv[1] argc == 1 --> ./2. 判断用户指定的是否是目录。 stat S_ISDIR(); -...
2019-12-17 17:09:54 229
原创 Linux文件OI 阻塞详解
open函数:int open(char *pathname, int flags) #include <unistd.h>参数: pathname: 欲打开的文件路径名 flags:文件打开方式: #include <fcntl.h> O_RDONLY|O_WRONLY|O_RDWR O_CREAT|O_APPEND|O_TRUNC|O_EXCL|O_N...
2019-12-17 17:08:51 500
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人