操作系统(Linux)
MaiDang_
进阶的小菜鸟
展开
-
僵死进程&malloc
僵死进程: (1)概念: 进程实体已经释放,但进程对应的PCB进程控制块(进程描述符)还在. (2)产生的条件: 子进程比父进程结束的早,且父进程没有调用 wait() 获取子进程的退出码,这时子进程就变为僵死进程. (3)若子进程比父进程结束的晚,则在父进程结束后,子进程的父进程会变成pid为1 的进程.关于malloc: ...原创 2018-11-30 22:24:00 · 204 阅读 · 0 评论 -
客户端服务器编程
之前我们说过进程间通信的5种方式,分别是: 管道 信号量 消息队列 共享内存 套接字其中前4种是在同一台主机上的进程进程通信方式,而今天说的客户端和服务器使用的是 套接字 来实现不同网络里的两台主机之间的进程通信,套接字分为三种: 流式套接字 数据报套接字 原始套接字, 而我们今天主要是以流式套接字来实现两个不同网络中的两个主机间的进程通信,...原创 2019-01-28 12:26:38 · 553 阅读 · 0 评论 -
线程 & 线程与fork & 线程的大小
线程的定义: 线程是进程中的一个执行序列Linux与Windows上线程的区别: Linux操作系统实现线程的机制比较的特殊,从内核的角度来讲,Linux上把所有的线程都当做进程来实现,内核中没有特别的准备调度算法和数据结构来表征线程,相反,线程仅仅被视为一个与其他进程共享某些资源的进程,每个线程都拥有自己唯一的task_struct(PCB),...原创 2019-01-15 22:19:52 · 677 阅读 · 0 评论 -
信号
信号的头文件为<signal.h>信号的响应方式有三种: 默认(SIG_DFL) 忽略(SIG_IGN) 自定义其实我们使用的 kill 就是利用信号的机制来实现结束进程的 在Linux上,发送信号的函数是 kill(pid_t pid, int sigtype); ...原创 2019-01-10 10:54:13 · 168 阅读 · 0 评论 -
缓冲区 &Linux上的文件操作 & man & fork+exec
缓冲区: 缓冲区刷新的4个条件: 1. "\n" 2. fflush() 3. 缓冲区满 4. 程序已exit结束 _exit();不刷新缓冲区,执行注册的退出函数 atexit(void (*func...原创 2019-01-09 23:56:52 · 431 阅读 · 0 评论 -
进程间通信
进程间通信的 五种方式:(ipcs 命令可查看全部的 信号量,消息队列,共享内存) 管道 信号量 ipcs -s semid查看信号量 ipcrm -s semid 删除信号量 共...原创 2019-01-14 23:00:34 · 207 阅读 · 0 评论 -
Linux中文件压缩&进程管理命令&用户管理&系统运行级别
文件压缩: 在Windows上实现压缩文件,需要借助第三方软件实现,Linux下可以通过命令来实现: 1.需要压缩的全部文件进行打包: tar cf xxxx.tar filelist //生成的包名就是xxxx 2.对包压缩: gzip ...原创 2019-01-07 22:30:20 · 189 阅读 · 0 评论 -
makefile
1.makefile/Makefile makefile文件是为了方便工程管理的,如果做的项目有好多个源文件,在编译的时候先要生成各个 .o文件,然后再进行链接生成可执行文件,每次改代码以后再进行编译都要做做同样的工作,效率很低; 再者很多项目就编译就要很长时间,改3次代码编译三次一天就过去了,啥也没干 makefile文件就可以解决这些问题,它只需要一个 make 命令就能得到 *....原创 2019-01-07 11:53:59 · 127 阅读 · 0 评论 -
Linux目录&Linux文件类型&文件操作命令&文件编辑
Linux目录(根目录下的目录结构): /bin: 存储 所使用的命令的可执行文件 例如 /bin/ls /bin/ls --color/home: 普通用户的家目录(国的概念)/dev: 外部设备的接口/proc: 虚拟目录,以进程为单...原创 2019-01-02 16:36:51 · 235 阅读 · 0 评论 -
gdb & 链接 & 库文件
1.gdb 可执行文件分两种: 1.默认的为 release版本,也可以叫发行版本,用户使用 2.debug版本,也叫开发版本,开发者使用 1.编译过程中手动加入debug信息,生成对应 .o文件 例如: gcc -c main.c -g 2.链接不会加入链接文...原创 2019-01-04 23:56:40 · 1048 阅读 · 0 评论 -
守护进程
守护进程的概念: 长时间在后台执行,不与用户交互,但是能提供某种服务的进程。一般守护进程的命名以 "d"来结尾,说明这是个守护进程,例如 : httpd要实现守护进程,首先需要了解下面4个概念: 1. 会话: 可以认为在Linux中每打开一个终端就与系统建立一个会话 2. 会话首进程: 在会话建立的第一个进程,一般来说是终端中的...原创 2019-03-16 00:11:40 · 3983 阅读 · 1 评论