linux
文章平均质量分 73
媛_YY
这个作者很懒,什么都没留下…
展开
-
进程间通讯-——管道
进程间通讯:多个进程间数据变换。通讯方式:信号、管道、信号量、消息队列、共享内存、套接字 这里我要讲的是管道,管道分为半双工通讯、全双工通讯。如果要举例说明的话,半双工通讯就类似自来水管,全双工通讯就类似我们打电话。下面我先用画图解释一下管道的原理:管道不对数据流向做规定,因此为防止进程A读取自己写入的数据(没有意义)采用半双工通讯。管道操作如下:一、有原创 2017-10-20 10:54:03 · 224 阅读 · 0 评论 -
Linux总结——gcc、gdb、makefile文件
1、gcc的使用以及编译原理 (1) 编译过程 例如hello.c程序:#include<stdio.h>Int main(void){ printf(“hello world!\n”);return 0;}a. 预处理:编译器将代码中的stdio.h的代码编译进来,用户使用-E选项进行查 看; gcc -E hello.c -o hel...原创 2018-03-24 15:32:20 · 610 阅读 · 0 评论 -
Linux总结——基础命令部分(二)
4、 文件操作命令(1) 基本操作:ls:显示当前目录下的文件; ls –i:显示文件的inode号码; ls -a:显示所有文件; ls –l:显示目录文件下的文件的详细信息; pwd:显示当前目录的绝对路径(从根目录开始); cd:切换目录; cd .. 退回上一层目录;cd +路径,cd或cd~ 回到家目录;创建文件:touch filename.name(普通文件);mkd原创 2018-02-26 22:42:32 · 239 阅读 · 0 评论 -
Linux fork源码分析
fork就是复制进程,所以我们要先了解进程的概念。进程是一个正在运行的程序,由程序代码、数据、变量(占用着系统内存)、打开的文件(文件描述符)和环境组成,进程是资源分配的最小单位,由进程控制块管理。每个进程的产生分两步:一、分配PCB;二、准备进程实体,如分配内存空间等。 fork调用一次返回2次,子进程的返回0,父进程返回新子进程的PID。下图是fork调用流程:由下图可知,f...原创 2018-02-11 22:38:09 · 591 阅读 · 0 评论 -
Linux总结——基础命令部分(一)
1、 文件系统:一个可被挂载的数据为一个文件系统。 主要介绍Linux默认的文件系统Ext2。(1) 文件系统特性: a. 磁盘分区需进行格式化,因为每种操作系统所设定的文件属性和权限并不相同, 为了存放这些档案所需的数据,因此需要将分割槽进行格式化,以成为操作系统能够利用的文件系统格式;b. 每种操作系统使用的文件系统并不相同,比如说,原创 2018-02-26 22:09:04 · 190 阅读 · 0 评论 -
线程(二)
线程同步: 1、为什么要同步? 首先我们回忆一下设计线程的初衷:共享资源,提高资源利用率。那么 问题就来了,如果第一个线程在执行一些操作后想要检查当前的错误状态 errno,但在它检查之前,另一个线程却修改了errno,这样是不正确的。 出现上述问题有两个原因: (1) errno是线程之间共享的全局变量;原创 2017-11-16 13:53:27 · 123 阅读 · 0 评论 -
Linux网络编程基础(二)
前面讲了TCP的编程流程,这里接着来讲UDP的编程流程。讲完UDP的编程流程然后再说两者的区别。UDP的编程流程:同样也要分为服务器端和客户端。 1、服务器端,如下图: 2、客户端,如下图: 现在描述一下UDP编程的接收和发送消息的系统调用函数recv from()和send to():#include<sys/types.h>#include<sys/socket.原创 2017-11-20 21:18:54 · 213 阅读 · 0 评论 -
Linux网络编程基础(一)
1、怎样完成网络编程 服务器:提供数据的为服务器; 客户端:获取数据的为客户端; 2、协议的选择 TCP:面向连接,可靠的流式服务; UDP:无连接的,不可靠的,数据报服务; 3、TCP的编程流程 sever(服务器端): //3.1 创建socket#include<sys/types.h>#include<sys原创 2017-11-19 20:55:54 · 159 阅读 · 0 评论 -
线程(一)
1、线程的概念: 线程是进程内部的一条执行序列(执行流),每个进程至少有一条执行序列,即每个进程 至少有一个线程。进程可以通过线程库创建N个线程,这些新创建的线程称之为函数线程,main函数代表的线程为主线程。2、线程与进程的区别: (1) 进程是资源分配的最小单位,线程是CPU 调度的最小单位; (2) 线程是轻量级的进程; (3) 两者的管理方式不同,进程由P原创 2017-11-12 20:44:21 · 151 阅读 · 0 评论 -
进程间通讯——消息队列
1、概念: 消息队列与管道有许多相似之处,但少了打开管道和关闭管道的复杂操 作,它提供了一种两个不相关的进程之间传递数据简单且有效的方法。 与命名管道相比,消息队列的优势在于,它独立于发送和接收进程儿存 在,与管道一样的是都有长度限制,这里的长度限制是指消息队列提供向 一个进程向另一个进程发送数据块方法中数据块的最大长度限制。2、消息队列的函数: #include原创 2017-10-31 23:11:47 · 134 阅读 · 0 评论 -
进程间通讯——共享内存
1、概念: 共享内存是两个正在运行的进程之间传递数据的一种有效的方式。 2、机制: 共享内存是由IPC为进程创建的一个特殊的地址范围,它将出现在该进程的地址空 间中,其他正在运行的进程可以将同一段共享内存连接到自己的地址空间中。所 有的进程都可以访问共享内存的地址。如果某个进程向共享内存中写入了数据, 那么写入的数据就可以被访问同一段共享原创 2017-11-06 22:21:55 · 179 阅读 · 0 评论 -
Linux总结——库文件
库文件 (1) 什么是库 在windows平台和linux平台下都存在着大量的库。 本质上来说库是一种可执行代码的二进制形式,可以被操作系统载入内存执行。 由于windows和linux的本质不同,因此二者库的二进制是不兼容的。 本文仅限于介绍linux下的库。 (2) 库的种类及区别 linux库有分类 静态库和共享库(动态库) 区别: 后缀不同 通常共享库...原创 2018-03-24 15:34:39 · 189 阅读 · 0 评论