系统编程
一颗牙疼_
这个作者很懒,什么都没留下…
展开
-
汇编实现模块化编程实现乘方计算——纪念第一个不需调试的汇编程序
assume cs:codesg, ds:datasgdatasg segment dw 1, 2, 3, 4, 5, 6, 7, 8 dw 8 dup(0)datasg endscodesg segmententry: mov ax, datasg mov ds, ax mov si, 0 mov cx, 8s0: mov bx, ds:[si] call pow mov ds:[si + 16], ax mov ds:[si + 16 + 2], dx add si,原创 2020-05-13 20:12:23 · 344 阅读 · 1 评论 -
关于win10下的汇编语言的环境搭建
本文主要对于学习王爽老师的汇编语言而不能搭建环境的同学指点迷津【狗头滑稽】王爽老师的汇编语言教学环境是Windows2000的环境,对于我们0202年的同学来讲实在是不友好,因为M$在win10中已经移除了dos所以我们需要自己搭建======================== 分割线 ==========================在开始之前先行下载两个文件包DOSBOX提取码:2...原创 2020-05-02 16:34:19 · 330 阅读 · 0 评论 -
Linux 线程同步、互斥锁、生产者消费者模型详解
线程同步:协同步调,对公共区域数据按序访问。防止数据混乱,产生与时间有关的错误。锁的使用:建议锁!对公共数据进行保护。所有线程【应该】在访问公共数据前先拿锁再访问。但,锁本身不具备强制性。使用mutex(互斥量、互斥锁)一般步骤:pthread_mutex_t 类型。 1. pthread_mutex_t lock; 创建锁2 pthread_mutex_init; 初始...原创 2019-12-17 17:13:40 · 262 阅读 · 0 评论 -
Linux 守护进程详解
守护进程:daemon进程。通常运行与操作系统后台,脱离控制终端。一般不与用户直接交互。周期性的等待某个事件发生或周期性执行某一动作。不受用户登录注销影响。通常采用以d结尾的命名方式。守护进程创建步骤:1. fork子进程,让父进程终止。2. 子进程调用 setsid() 创建新会话3. 通常根据需要,改变工作目录位置 chdir(), 防止目录被卸载。4. 通常根据需要,...原创 2019-12-17 17:12:37 · 229 阅读 · 0 评论 -
Linux 信号详解
信号共性:简单、不能携带大量信息、满足条件才发送。信号的特质:信号是软件层面上的“中断”。一旦信号产生,无论程序执行到什么位置,必须立即停止运行,处理信号,处理结束,再继续执行后续指令。所有信号的产生及处理全部都是由【内核】完成的。信号相关的概念:产生信号: 1. 按键产生 2. 系统调用产生 3. 软件条件产生 4. 硬件异常产生 5. 命令产生概念:...原创 2019-12-17 17:12:07 · 217 阅读 · 0 评论 -
Linux 进程间通讯详解
pipe管道: 用于有血缘关系的进程间通信。 ps aux | grep ls | wc -l父子进程间通信:兄弟进程间通信:fifo管道:可以用于无血缘关系的进程间通信。命名管道: mkfifo 无血缘关系进程间通信: 读端,open fifo O_RDONLY 写端,open fifo O_WRONLY文件实现进程间通信:打开的文件是内核中的一块缓冲区。...原创 2019-12-17 17:11:31 · 115 阅读 · 0 评论 -
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 · 236 阅读 · 0 评论 -
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 · 231 阅读 · 0 评论 -
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 · 503 阅读 · 0 评论 -
vim常用命令小结
跳转到指定行:1. 88G (命令模式)2. :88 (末行模式)跳转文件首:gg (命令模式)跳转文件尾:G(命令模式)自动格式化程序:gg=G(命令模式)set shiftwidth=4大括号对应:% (命令模式)光标移至行首:0 (命令模式)执行结束,工作模式不变。光标移至行尾:$ (命令模式)执行结束,工作模式不变。删除单个字符:x (命令...原创 2019-11-20 15:41:20 · 189 阅读 · 1 评论 -
Linux基础知识小结
Linux系统: “所见皆文件”Linux系统目录:bin:存放二进制可执行文件boot:存放开机启动程序dev:存放设备文件: 字符设备、块设备home:存放普通用户etc:用户信息和系统配置文件 passwd、grouplib:库文件:libc.so.6root:管理员宿主目录(家目录)usr:用户资源管理目录Linux系统文件类型: 7/8 种普通文件:...原创 2019-11-20 15:40:28 · 149 阅读 · 0 评论 -
makefile详解
makefile: 管理项目。命名:makefile Makefile --- make 命令1 个规则: 目标:依赖条件 (一个tab缩进)命令 1. 目标的时间必须晚于依赖条件的时间,否则,更新目标 2. 依赖条件如果不存在,找寻新的规则去产生依赖条件。ALL:指定 makefile 的终极目标。2 个函数: src = $(wildcard ./*.c)...原创 2019-11-20 15:39:14 · 213 阅读 · 0 评论