Linux
文章平均质量分 68
zhangjie1315
这个作者很懒,什么都没留下…
展开
-
基础IO
系统文件IO 操作文件除了c接口,我们还可以采用系统接口来进行文件访问。 hello.c写文件:#include<stdio.h>#include<sys/types.h>#include<sys/stat.h>#include<fcntl.h>#include<unistd.h>int main(){ ...原创 2018-04-30 16:31:03 · 119 阅读 · 0 评论 -
网络编程套接字
认识IP地址 IP协议有两个版本,IPv4和IPv6。无特殊说明,默认都是IPv4IP地址是在IP协议中,用来标识网络中不同主机的地址对于IPv4来说,IP地址是一个4字节,32位的整数。IPv6,16字节。我们通常使用“点分十进制”的字符串表示IP地址,如192.168.1.1;用点分割的每一个数字表示一个字节,范围为0-255源IP地址和目的IP地址 在IP数据包头部中,有...原创 2018-05-06 15:08:42 · 138 阅读 · 0 评论 -
多线程
线程的同步与互斥 如果每个线程使用的变量都是其他线程不会读取和修改的,那么就不存在一致性问题。同样,如果变量是只读的,多个线程同时读取该变量也不会有一致性问题。但是,当一个线程可以修改的变量,其他线程也可以读取和修改的时候,我们就需要对这些线程进行同步,确保他们再访问变量的存储内容时不会访问到无效的值。 假设两个线程读写相同变量时,线程A读取变量然后给这个变量赋予一个新的值,但写操作需要两个...原创 2018-05-06 17:47:43 · 229 阅读 · 0 评论 -
进程间关系和守护进程
进程组 进程组是一个或者多个进程的集合。每个进程除了有一个进程ID外,还属于一个进程组。每个进程组由一个唯一的进程组ID。每个进程组都可以有一个组长进程,组长进程的标识是其进程组ID等于其进程ID。组长进程可以创建一个进程组,创建该组中的进程,然后终止。只要在某个进程组组中一个进程存在,则该进程组就存在,与其组长进程是否终止无关。–类比班级、班长实例 作业 Shell分前后台来控制的不是进程...原创 2018-05-03 11:29:30 · 96 阅读 · 0 评论 -
线程
线程(TCB)的概念 1. 线程是一个进程内部的控制序列 2. 一切进程至少都有一个执行线程 进程和线程: 1. 线程是在进程内部运行的执行流(线程在进程的地址空间内运行) 2. 线程执行粒度更细 3. 线程之间大部分资源是共享的(但也有私有的:线程拥有独立的上下文数据、有自己的私有栈结构) 进程的多个线程共享:地址空间、代码数据、文件描述符、当前工作目录、用户id和组id...原创 2018-04-30 23:33:30 · 355 阅读 · 0 评论 -
进程信号
信号基本概念ctrl+c产生的信号只能发给前台进程。一个命令后面加个&可以放到后台运行,这样shell不必等待进程结束就可以接受新的命令,启动新的程序Shell可以同时运⾏行一个前台进程和任意多个后台进程,只有前台进程才能接到像Ctrl-C这种控制键产⽣生的信号前台进程在运⾏行过程中,用户随时可能按下Ctrl-C⽽而产⽣一个信号,也就是说该进程的⽤户空间代码执行到任何地⽅方都有可...原创 2018-04-30 22:26:45 · 93 阅读 · 0 评论 -
进程间通信-管道
进程间通信的目的数据传输:一个进程需要将它的数据发送给另一个进程资源共享:多个进程之间共享同样的资源通知事件:一个进程需要向另一个或者另一组进程发送消息,通知发生了某种事件进程控制:有些进程希望完全控制另一个进程的执行(如Debug进程)管道 分为:匿名管道pipe和命名管道 也是一个文件 什么是管道??? 5. 管道是unix中最为古老的 进程间通信的形式 ...原创 2018-04-30 17:33:28 · 103 阅读 · 0 评论 -
linux常见指令与权限
cd, touch, ls, rm, mv cd指令:cd+目录名 改变工作目录,将当前工作目录改到制定目录下。 cd.. 返回上级目录 cd /home/zahngjie/linux/ 绝对路径 cd ../day02/ 相对路径 cd ~ 进入家目录 cd - 返回最近访问的目录 touch 可以更改文档或者目录的时间,包括存取时间和更改时间,或者新建一个文件...原创 2018-03-15 23:16:33 · 222 阅读 · 0 评论 -
VIM
vim 的基本命令 插入模式: i 进入插入模式后从光标当前位置开始输入文件;a 进入插入模式,是从光标所在位置下一个位置开始输入文字;o 进入插入模式后,是插入新的一行,从行首开始输入文字 **删除文字:**dd 删除光标所在行;#dd 从光标所在行开始删除#行;x 每按一次,删除光标所在位置的一个字符;#x 表示删除光标所在位置的“后边(包含在自己在内)”#个字符 复制:yy ...原创 2018-03-21 23:21:55 · 113 阅读 · 0 评论 -
僵尸进程和孤儿进程
进程状态 为了弄明白正在运行的程序是什么意思,我们需要知道进程的不同状态。一个进程可以有一下几个状态:(在Linux内核里,进程有时候也叫做任务) R运行状态(running):该状态并不意味着进程一定在运行中,它表明进程要么是在运行中要么在运行队列里。 S睡眠状态(sleeping):意味着进程在等待事件完成(这里的睡眠有时候也叫做可中断睡眠-(interruptible sleep))...原创 2018-03-29 19:52:27 · 200 阅读 · 0 评论 -
进程间通信—消息队列
消息队列 一、什么是消息队列? 1. 消息队列提供了一个从一个进程向另一个进程发送一块数据的方法。 2. 每个数据块都被认为有一个类型,接收者进程接受的数据块可以有不同的类型值。 3. 消息队列也有和管道一样的不足,每个消息的最大长度(MSGMAX)、每个消息队列总的字节数(MSGMNB)、系统消息队列的总数(MSGMNI)都有上限。IPC对象数据结构 内核为每一个IPC对象维...原创 2018-04-17 22:26:29 · 242 阅读 · 0 评论 -
Linux编辑器-vim常用命令
Linux编辑器-vim常用命令 1.vim正常模式命令集 o 进入插入模式插入新的一行,从行首开始输入文字 vim可以用键盘光标控制上下左右:k 上、j 下、h 左、l 右 hjkl w 光标跳到下一个字的开头,b 光标回到上一个字的开头 gg 进入到文本的开始,shift+g 进入到文本的末尾 ctrl+b 屏幕向后移动一页, ctrl+f屏幕向前移动一页 dd 删除光...原创 2018-04-29 13:15:00 · 186 阅读 · 0 评论 -
Linux进程概念
Linux进程概念 截止目前我们认识的计算机,都是由一个个硬件组成输入单元:键盘、鼠标、扫描仪、写板等中央处理器(CPU):含有运算器和控制器等输出单元:显示器、打印机等冯诺依曼体系强调以下几点: 1. 这里的存储器指的是内存 2. 不考虑缓存情况,智力的CPU只能对内存进行读写操作,不能访问外设(输入或输出设备)。 3. 外设要输入或者输出数据,也只能写入内存或从内...原创 2018-04-29 15:12:06 · 102 阅读 · 0 评论 -
进程控制
进程创建 fork是非常重要的函数,从已经存在的进程里创建一个新进程。新进程为子进程,原进程为父进程。 进程调用fork,当控制转移到内核中的fork代码后,内核做:分配新的内存块、内核数据结构给子进程将父进程部分数据结构内容拷贝到子进程添加子进程到系统程序列表中fork返回,开始调度器调度当一个进程调用fork之后,就会有两个二进制代码相同的进程fork之前父进程独立运...原创 2018-04-30 12:11:28 · 88 阅读 · 0 评论 -
线程死锁
死锁条件 说死锁条件之前先要谈一个问题:可重用资源和可消耗资源 可重用资源 可重用资源是指一次仅供一个进程安全使用且不因使用而耗尽的资源。进程得到资源单元并使用后,会释放这些单元供其他进程继续使用。可重用资源的例子包括:处理器,i/o通道,内存和外存,设备,以及诸如文件,数据库和信号量之类的数据结构。 可重用死锁的例子:两个相互竞争的进程都占用一个资源并请求另一个资源时,就会发生死锁。...原创 2018-05-06 18:03:49 · 136 阅读 · 0 评论