![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Linux
文章平均质量分 73
琼琼的博客
这个作者很懒,什么都没留下…
展开
-
Linux基础IO
Linux系统IO接口1.联系与区别拿C语言来说,我们知道它有自己的C文件IO接口,像open,close,write,read,lseek等等,并且·默认会打开按个输入输出流,分别是stdin,stdout,stderr,并且他们的类型都是FILE*,文件指针类型。那么在Linux系统下也有它自己的IO接口,两者有什么不同吗?下面我们结合代码来看:系统的open接口(该段程序是往myfile里面...原创 2018-06-13 16:39:10 · 142 阅读 · 0 评论 -
POSIX和System V的比较/IPC函数汇总
当我们在linux系统中进行进程间通信时,会发现例如共享内存,信号量,消息队列等方式时,会发现有System v以及POXIS两种类型。因此,我们探究一下System v和POXIS到底代表着什么意义。 一.POSIX POSIX(Portable Operating System Interface for Computing Systems)是由IEEE 和ISO/IEC 开发的一簇标准。该...原创 2018-09-05 11:33:00 · 454 阅读 · 0 评论 -
基于HTTP的小型自主web服务器
本篇博客通过自己建立Http服务器并且结合MySql来实现Web通信,具体代码详见GitHub:https://github.com/qiong12345/http在此整理其运行显示界面1.首先建立数据库2.首先启动Http服务器3.在浏览器上输入网址(我是在本机进行测试,用的IP是127.0.0.1,Http协议的TCP连接默认端口号为80)此时页面显示如下:...原创 2018-08-29 22:02:17 · 365 阅读 · 0 评论 -
网络编程套接字之UDP编程
1.UDP套接字编程过程图1 UDP客户端/服务器端sendto 与 recvfrom 函数这两个函数的功能类似于 write 和 read 函数,可用无连接的套接字编程。其定义如下:/* 函数功能:发送数据; * 返回值:若成功则返回已发送的字节数,若出错则返回-1; * 函数原型: */#include <sys/socket.h>#include <sys/typ...原创 2018-07-15 11:05:01 · 299 阅读 · 0 评论 -
Linux学习笔记之高级IO概念
1.五种IO模型阻塞IO:在内核将数据准备好之前,系统调用会一直等待,所有的套接字默认都是阻塞方式 非阻塞IO:如果内核未将数据准备好,系统调用会直接返回,并且返回错误(非阻塞IO需要程序员采用循环的方式反复尝试读写这个文件描述符,将这个过程称为轮询)这对于CPU来说是非常大的浪费,一般只有在特定的场景下才进行使用 信号驱动IO:内核如果将数据准备好之后,使用SIGIO信号通知应用程序...原创 2018-07-20 11:21:00 · 414 阅读 · 0 评论 -
网络编程之TCP编程
TCP服务器server.c的作用是接受client的请求,并与client进行简单的数据通信 2 #include <stdio.h> 3 #include <sys/socket.h> 4 #include <netinet/in.h> 5 #include <errno.h> 6 #include <unist...原创 2018-07-20 10:48:26 · 241 阅读 · 0 评论 -
Linux学习笔记之高级IO相关接口(select、poll、epoll服务器)
对于一个文件描述符,默认都是阻塞IO非阻塞IOfcntl函数原型#include <unistd.h>#include <fcntl.h>int fcntl(int fd, int cmd, ..../* arg */ );传入的cmd的值不同, 后⾯面追加的参数也不相同.fcntl函数有5种功能:复制一个现有的描述符(cmd=F_DUP...原创 2018-07-24 12:04:43 · 332 阅读 · 0 评论 -
(Linux学习之笔记)重定向
在Linux里面有三个标准流 :标准输入0,标准输出1,标准错误20,1,2对应的物理设备一般是 : 键盘、显示器、显示器原创 2018-07-10 20:59:53 · 3402 阅读 · 0 评论 -
动态库和静态库
我们自己在Linux下生成动态库和静态库,并且链接使用它们先来编写简单的add.c add.h || sum.c sum.h || mul.c mul.h || div.c div.hadd.h原创 2018-06-28 10:55:49 · 137 阅读 · 0 评论 -
信号量
1. 编写信号量代码,实现二元信号量对显示器进行保护2. 实现父子进程输出成对AA或BB3. 调研SEM_UNDO标志代表什么含义,用途是什么,如何做到回滚 信号量主要用于同步与互斥,所以我们需要先了解什么是同步与互斥 1.进程互斥1>进程互斥的概念 由于各进程要求共享资...原创 2018-06-27 21:59:20 · 220 阅读 · 0 评论 -
消息队列
1. 编写消息队列代码,实现双向通信2. 总结消息队列特征3. 练习消息队列控制指令,ipcs和ipcrm1.消息队列简述 消息队列提供了一个从一个进程向另外一个进程发送一块数据的方法 这个被发送的数据块被认为都有一个类型,所以进行接收的进程收到的这个数据块可以有不同的类型 消息队列是进程间通信的一种方法,管道也是进程间通信的一种方法,所以消息队列和管道一样也有不足,就是每个消息...原创 2018-06-27 16:58:04 · 225 阅读 · 0 评论 -
管道
1.管道我们把从一个进程到另一个进程间的一个数据流称为一个"管道".其中管道又分为匿名管道和命名管道,两者之间的区别和联系又是什么呢?下面我们来看。1)匿名管道pipe函数:int pipe(int fd[2]); 参数说明: fd:文件描述符,其中fd[0]表示读端,fd[1]表示写端 返回值:成功返回为0,失败返回为错误代码比如我们可...原创 2018-06-26 20:16:58 · 173 阅读 · 0 评论 -
进程间关系和守护进程
1.进程组 在Linux下,每一个进程都有自己的一个进程ID,但是他还包含了一个进程组ID,它是属于一个进程组的。那么进程组是什么呢? 进程组是由一个或多个的进程组成的集合。每个进程组有一个唯一的进程组ID,也可以说是这个进程组的编号。那么既然是一个组,就要有一个组长进程,既然是组长进程,那么该进程组的组ID就等于组长进程的ID。 组长进程可以创建一个进程组,并且创建该组中的进...原创 2018-06-24 23:06:36 · 182 阅读 · 0 评论 -
程序、进程、线程的区别与联系
程序程序并不能单独执行,只有将程序加载到内存中,系统为他分配资源后才能够执行,这种执行的程序称之为进程, 也就是说进程是系统进行资源分配和调度的一个独立单位,每个进程都有自己单独的地址空间。 所以说程序与进程的区别在于,程序是指令的集合,是进程运行的静态描述文本, 而进程则是程序在系统上顺序执行时的动态活动。 进程但是进程存在着很多缺陷,主要集中在两点:(1).进程只能...转载 2018-09-23 17:15:40 · 537 阅读 · 0 评论