linux系统编程
XMJYever
这个作者很懒,什么都没留下…
展开
-
同步I/O,异步I/O的理解
文章目录什么是I/O?一、阻塞I/O二、非阻塞I/O三.多路复用I/O四.异步I/O五.阻塞I/O与非阻塞I/O的区别六.同步与异步I/O的区别七.异步IO与非阻塞IO的区别总结什么是I/O?I/O:在计算机中指Input/Output,就是输入和输出。由于程序和运行时数据是在内存中驻留,由cpu来执行,涉及到数据交换的地方,通常是磁盘、网卡等,就需要IO接口。一、阻塞I/O当用户线程发起IO请求后,会进行系统调用(system call)来让内核(Kernel)进行IO操作(系统调用是用户空.转载 2020-12-22 17:05:11 · 1605 阅读 · 0 评论 -
Linux命令速查汇总
1. 查看Linux系统信息arch #显示机器的处理器架构(1)uname -m #显示机器的处理器架构(2)uname -r #显示正在使用的内核版本dmidecode -q #显示硬件系统部件 - (SMBIOS / DMI)hdparm -i /dev/hda #罗列一个磁盘的架构特性hdparm -tT /dev/sda #在磁盘上执行测试性读取操作cat /proc/cpuinfo #显示CPU info的信息cat /proc/原创 2020-10-13 09:57:24 · 214 阅读 · 1 评论 -
epoll使用详解(精髓)
epoll - I/O event notification facility在linux的网络编程中,很长的时间都在使用select来做事件触发。在linux新的内核中,有了一种替换它的机制,就是epoll。相比于select,epoll最大的好处在于它不会随着监听fd数目的增长而降低效率。因为在内核中的select实现中,它是采用轮询来处理的,轮询的fd数目越多,自然耗时越多。并且,在linux/posix_types.h头文件有这样的声明:#define __FD_SETSIZE 1024转载 2020-09-28 10:08:05 · 1043 阅读 · 0 评论 -
进程间通信——共享内存
什么是共享内存共享内存是在两个正在运行的进程之间传递数据的一种非常有效的方式,允许两个不相关的进程访问同一逻辑内存。共享内存是由IPC为进程创建的一个特殊的地址范围,它将出现在该进程的地址空间中。其他进程可以将同一段共享内存连接到它们自己的地址空间中。所有的进程都以访问共享内存中的地址,就像它们是由malloc分配的一样。如果某个进程向共享内存写入了数据,所做的改动将立刻被可以访问同一段共享内存的任何其他进程看到。一般使用共享内存来提供对大块内存区域的有效访问,同时通过传递小消息来同步对该内存的访问原创 2020-09-25 15:13:59 · 272 阅读 · 0 评论 -
Linux进程通信——信号量semget()、semop()、semctl()
前言如果有多个程序试图在同一时间更新这个数据库,数据就可能会遭到破坏。两个不同的程序要求不同的用户向数据库输入数据,问题会出现在对数据库进行更新的代码上。临界区域:真正执行数据更新的代码需要独占式的执行。为了防止出现因多个程序同时访问一个共享资源而引发的问题,则需要使用一种方法,可以通过生成并使用令牌来授权,在任一时刻只能有一个执行线程访问代码的临界区域。之前说过可以使用互斥量和信号量来控制对临界区域的访问。在此会对信号量做更加普遍意义的介绍。定义信号量:是一个特殊变量,只允许对它进行等待(wa原创 2020-09-24 20:11:02 · 1164 阅读 · 0 评论 -
Linux下实现简易客户/服务器(C/S)应用程序——基于有名管道FIFO
有名管道简介原创 2020-09-18 10:50:59 · 504 阅读 · 0 评论 -
Linux下MySQL数据库简介及使用(基于C语言)
1. MySQL基本简介1.1 数据库数据库:database(DB),是一种存储数据的仓库。数据库是根据数据结构组织、存储和管理数据数据库能够长期、高效的管理和存储数据数据库的目的就是能够存储(写)和提供(读)数据1.2 关系型数据库关系型数据库是一种建立在关系模型上的数据库。常见的关系模型有:关系数据结构(存储)、关系操作集合(操作)和关系完整性约束(约束);关系型数据库存储在磁盘中(永久性存储);关系型数据库模型有四层结构:数据库管理系统、数据库、数据表、数据字段(依赖于数据原创 2020-09-13 16:18:44 · 496 阅读 · 0 评论 -
linux文件操作——基于unix标准库函数(open、read、write函数等)
1. 前言在linux系统中,“一切皆文件”这一观点非常重要,也就是说无论执行什么类型的操作,都可以用 “打开 open->读写 read/write->关闭 close”模式来操作。大多数情况下,我们只需要使用五个基本的库函数——open、close、read、write和ioctl。2. Linux文件结构2.1目录目录除了本身包含的内容外,还会有一个名字和一些属性,即“管理信息”,例如:利用ls -l在当前目录下执行,可以得到如下图所示[外链图片转存失败,源站可能有防盗链机制,原创 2020-09-05 21:28:58 · 986 阅读 · 0 评论 -
Linux重定向详解(输入输出重定向)
前言首先需要明确的一点,Linux 中标准的输入设备默认指的是键盘\color{red}{键盘}键盘,标准的输出设备默认指的是显示器\color{red}{显示器}显示器。所以所说的输入、输出重定向,从字面理解,即:输入重定向:指的是重新指定设备来代替键盘\color{blue}{代替键盘}代替键盘作为新的输入设备;输出重定向:指的是重新指定设备来代替显示器\color{blue}{代替显示器}代替显示器作为新的输出设备。通常是用文件或命令的执行结果来代替键盘作为新的输入设备,而新的输出设备通原创 2020-08-30 11:20:39 · 1105 阅读 · 0 评论