
Linux系统编程
文章平均质量分 77
学习Linux系统编程
想成为大佬的每一天
这个作者很懒,什么都没留下…
展开
-
Linux系统编程 day11 锁 (两天没有更新了,中期完就休息了)
1、尽量保证锁的粒度,越小越好。(访问共享数据前,加锁,访问结束后2、互斥锁,本质是结构体,但是可以看成整数,初值为1。(pthread_mutex_init调用成功)3、加锁: --操作,阻塞线程4、解锁:++操作,唤醒阻塞在锁上的进程try锁:尝试加锁 , 成功-- , 失败:返回错误号(EBUSY),不阻塞。原创 2025-04-27 17:35:32 · 921 阅读 · 0 评论 -
Linux系统编程 day10 接着线程(中期头大,还要写论文)
线程控制原语 进程控制原语fork();getpid();exit();kill();这里写一下昨天的join函数,那块有点难理解。int var;// 这里不能直接使用结构体,因为这是在栈上的// 这边需要在堆区分配内存,如果不使用堆区会发生错误,因为当线程执行完之后,栈上的内存会释放,如果返回栈上的内容会非法访问。if(ret!if(ret!if(ret!原创 2025-04-23 22:34:56 · 396 阅读 · 0 评论 -
Linux系统编程 day9 SIGCHLD and 线程
只要子进程信号发生改变,就会产生SIGCHLD信号。原创 2025-04-22 22:09:23 · 1005 阅读 · 0 评论 -
Linux系统编程 day7、8 信号(周日划水了)
int i;for(i = 0;i < 32;i++){}else{//初始化set// 将SIGINT位置变为1exit(1);return 0;原创 2025-04-21 21:50:39 · 701 阅读 · 0 评论 -
Linux系统编程 day6 进程间通信mmap
var的时候 :读时共享,写时复制父进程先创建映射区,指定共享MAP_SHARED权限 , fork创建子进程。原创 2025-04-19 20:17:32 · 609 阅读 · 0 评论 -
Linux 系统编程 day5 进程管道
Linux环境下,进程地址空间相互独立,任何一个进程的全局变量在另一个进程中都看不到,所以进程和进程之间不能互相访问,要交换数据必须通过内核,在内核中开辟一块缓冲区(4096,buf),进程1把数据从用户空间拷贝到内核缓冲区,进程2再从内核缓冲区把数据拷走,内核提供的这种机制称为进程间通信(IPC)。常用的进程间通信的方式有:1、管道(使用最简单,要求有血缘关系)2、信号(开销最小)3、共享映射区(无血缘关系)4、本地套接字(最稳定)原创 2025-04-18 22:09:22 · 1505 阅读 · 0 评论 -
Linux系统编程 继续学习day3
接昨天的文件系统。原创 2025-04-17 09:03:48 · 272 阅读 · 0 评论 -
Linux系统编程学习 day4 进程
程序:死的,只占用磁盘空间。-----剧本进程:活的,运行起来的程序,占用CPU,内存等系统资源。------戏。原创 2025-04-17 22:24:10 · 762 阅读 · 0 评论 -
Linux系统编程 day2
由操作系统实现并提供给外部应用程序的编程接口(API)。是应用程序同系统之间数据交换的桥梁。原创 2025-04-15 21:53:32 · 1031 阅读 · 0 评论 -
linux 系统编程基础部分 day1
创建修改用户组查看当前用户组:whoami创建用户 sudo adduser 用户 sudo addgroup 组名添加权限:chmod [u,g,o,a]+[x,w,r] 数字表示法r4 w2 x1 chmod 471 每个权限种类想加给文件换所属用户 chown 新用户名 文件名 chgrp递归查找:find 路径 -type/name ' ' 无递归: find 路径 -maxdepth 1 -type/name '文件名';原创 2025-04-14 20:44:32 · 768 阅读 · 0 评论