
Linux
Raven_csdn
分享,记录
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Linux系统编程
一、进程的概念 1、程序和进程 程序:二进制文件,占用磁盘空间 进程:启动程序 所有的数据都在内存中 需要占用更多的系统资源 2、并发和并行 并发是在某个时间段内并发,比如在7点到8点回家、吃饭在这个时间段内,回家和吃饭并发 并行是某个时刻的并行,比如在7点10分,我吃饭的时候看着新闻,同时进行的 二、进程控制 fork函数,在进程执行到fork()函数的时候,会产...原创 2019-03-29 21:54:52 · 1577 阅读 · 0 评论 -
Socket编程---p2p模型
自己既能发送数据也能接收数据,既是服务端也是客户端 服务端代码: #include<unistd.h> #include<sys/stat.h> #include<sys/wait.h> #include<sys/types.h> #include<fcntl.h> #include<stdlib.h> #include&...原创 2019-04-22 22:53:02 · 463 阅读 · 0 评论 -
Socket编程---c/s模型demo2
demo2的客户端和demo1的客户端相同只需要写重写服务端的程序.服务端代码如下: #include<unistd.h> #include<sys/stat.h> #include<sys/wait.h> #include<sys/types.h> #include<fcntl.h> #include<stdlib.h> ...原创 2019-04-22 22:15:29 · 236 阅读 · 0 评论 -
Socket编程---c/s模式演示demo1
首先,看服务端代码: #include<unistd.h> #include<sys/stat.h> #include<sys/wait.h> #include<sys/types.h> #include<fcntl.h> #include<stdlib.h> #include<stdio.h> #include&...原创 2019-04-22 21:52:21 · 485 阅读 · 0 评论 -
Socket编程---API
Socket可以看成是用户进程与内核网络协议栈的编程接口 Socket不仅可以用于本机的进程间通信,还可以用于网络上不同主机间的通信。 IPv4套接口地址结构 IPv4套接口地址结构通常也称为“网际套接字地址结构”,它以“sockaddr_in”命名,定义在头文件中<netinet/in.h> struct sockaddr_in{ uint8_t sin_len;//整个sock...原创 2019-04-22 20:45:19 · 464 阅读 · 0 评论 -
Linux线程同步
先来看一个程序: raven@raven-pc:~/clinux/thread$ vim number.c #include<stdlib.h> #include<stdio.h> #include<unistd.h> #include<string.h> #include<sys/stat.h> #include<sys/ty...原创 2019-04-10 00:00:44 · 312 阅读 · 0 评论 -
Linux多线程
有了进程,为什么要引入线程? 进程有很多优点,它提供了多道编程,让我们感觉我们每个人都拥有自己的CPU和其他资源,可以提高计算机的利用率。很多人就不理解了,既然进程这么优秀,为什么还要线程呢?其实,仔细观察就会发现进程还是有很多缺陷的,主要体现在两点上: 1、进程只能在一个时间干一件事,如果想同时干两件事或多件事,进程就无能为力了。 2、进程在执行的过程中如果阻塞,例如等待输入,整个进程就会挂起,...原创 2019-04-09 23:11:12 · 896 阅读 · 0 评论 -
Linux守护进程、进程组、会话
1、守护进程的特点 1)、后台服务进程 2)、独立于控制终端 3)、周期性执行某任务 4)、不受用户登录注销影响(关机肯定影响) 5)、一般采用以d结尾的名字(服务) 2、进程组 1)、进程的组长 组里边的第一个进程 进程组的id==进程组的组长的id 2)、进程组组长选用规则 进程中的第一个进程 3)、进程组的id的设定 进程组的id就是组长的进程id 3、会话 1)、创建一个会话注...原创 2019-04-09 17:49:32 · 409 阅读 · 0 评论 -
多线程顺序打印ABC、实现读写锁
1、多线程顺序打印ABC #include<stdio.h> #include<sys/types.h> #include<semaphore.h> #include<pthread.h> sem_t sem_id1, sem_id2, sem_id3; void* func1(void*); //声明 void* func2(void...原创 2019-04-11 16:35:29 · 444 阅读 · 0 评论 -
Linux进程之间的通信--信号
1、特点 1)、简单 2)、携带的信息量少 3)、使用在某个的特定的场景中 2、信号的状态 1)、产生 键盘:ctrl+c 命令:kill 系统函数:kill 软条件:定时器 硬件:段错误,除0错误等 2)、未决状态—没有被处理 3)、递达 忽略 捕获 执行了默认动作 3、处理方式 4、信号四要素 名称、编号、动作、注释 5、概念 存在pcb中,所以在内核中,用户不能直接操作 阻塞信号集:...原创 2019-04-06 16:20:30 · 297 阅读 · 2 评论 -
Linux进程之间的通信--内存映射区mmap
mmap创建内存映射区域 作用:将磁盘文件的数据映射到内存,用户通过修改内存就能修改磁盘文件 函数原型: #include <sys/mman.h> void *mmap( void *addr,//映射区首地址,传NULL size_t length, //映射区的大小 int prot, //映射区权限 int flags, //标志位参数 ...原创 2019-04-06 00:09:39 · 513 阅读 · 0 评论 -
Linux进程之间的通信--管道
进程之间的通信 什么是IPC? 进程间通信,InterProcess Communication 进程间通信常用的4中方式 管道----------简单 信号----------系统开销小 共享映射区----(有无学院关系的进程间通信都可以) 本地套接字-----稳定 什么是管道? 本质: 内核缓冲区 伪文件-不占用磁盘空间 特点: 两部分: 读端、写端,对应两个文件描述符 数据写...原创 2019-04-04 21:09:05 · 427 阅读 · 0 评论 -
Linux文件IO
Linux文件io 首先要知道文件描述表,通过这张表就可以找到对应的文件。从0开始编码到1023一共1024个。每个进程的前三个默认打开,也就是0,1,2分别指向标准输入、标准输出、标准错误三个文件,可以不用open直接使用。 pcb本质是结构体 一个进程有一个文件描述表:1024 前三个被占用 文件描述符的作用,通过他们找到对应的磁盘位置。 打开文件 int open(const char *...原创 2019-04-03 18:34:49 · 349 阅读 · 0 评论 -
Socket编程---长短连接
长连接和短连接是由客户端决定的 短连接是客户端每做一个通信就连接一次 如果是频繁的业务模型,长连接比较好 写一个短连接的的例子: #include<unistd.h> #include<sys/stat.h> #include<sys/wait.h> #include<sys/types.h> #include<fcntl.h> #in...原创 2019-04-22 23:06:13 · 626 阅读 · 0 评论