![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
linux基础
kvsp24
这个作者很懒,什么都没留下…
展开
-
管道的内部实现
Linux管道的实现机制 在Linux中,管道是一种使用非常频繁的通信机制。从本质上说,管道也是一种文件,但它又和一般的文件有所不同,管道可以克服使用文件进行通信的两个问题,具体表现为: 限制管道的大小。实际上,管道是一个固定大小的缓冲区。在Linux中,该缓冲区的大小为1页,即4K字节,使得它的大小不象文件那样不加检验地增长。使用单个固定缓冲区也会带来问题,比如在写管道时可能变满,当这种情况发生时,随后对管道的write()调用将默认地被阻塞,等待某些数据被读取,以便腾出足够转载 2020-08-19 10:43:55 · 730 阅读 · 0 评论 -
linux中与线程同步的API
1 互斥锁 pthread_mutex_init函数 int pthread_mutex_init(pthread_mutex_t *restrict mutex, const pthread_mutexattr_t *restrict attr) 这里的restrict关键字,表示指针指向的内容只能通过这个指针进行修改 restrict关键字:用来限定指针变量。被该关键字限定的指针变量所指向的内存操作,必须由本指针完成。初始化互斥量: 示例 pthread_mutex_t mutex; pthr原创 2020-08-13 07:53:57 · 139 阅读 · 0 评论 -
linux系统编程——————线程
1 相关的API #include <pthread.h>* int pthread_create(pthread_t *thread, const pthread_attr_t *attr, void *(*start_routine) (void *), void *arg); pthread_t 参1:传出参数,表新创建的子线程 id 参2:线程属性。传NULL表使用默认属性。 参3:子线程的回调函数是一个返回值是泛型指针的函数。创建成功,ptherad_create函数返原创 2020-08-10 21:50:28 · 119 阅读 · 0 评论 -
linux中的文件
1 基本概念 1.1 目录与目录项 目录是一种特殊的文件。目录里有什么? 目录和文件!那么怎么记录这些目录和文件?一个个的目录项。 目录项里有什么?1.文件名(目录名)2. i-node(节点编号)保存了文件的属性及其真正的数据存放位置等信息。还有就是我们一般所说的inode更多是inode 的编号,而inode应该准确的来说,应该是一个数据结构。 1.2 inode inode是一个数据结构记录了很多关于文件的信息。 (1)文件大小 Size (2)占用block数目 (3)拥有者和所属组的ID A原创 2020-08-09 17:54:35 · 102 阅读 · 0 评论 -
linux中 用于目录管理的系统调用
1 inode 解inode,要从文件储存说起。 文件存储在硬盘上,硬盘的最小存储单位叫做“扇区”(Sector)。每个扇区储存512字节(相当于0.5KB)。 操作系统读取硬盘的时候,不会一个个扇区的读取,这样效率太低,而是一次性连续读取多个扇区,即一次性读取一个“块”(block)。这种由多个扇区组成的“块”,是文件存取的最小单位。“块”的大小,最常见的是4KB,即连续八个sector组成一个block。 文件数据都储存在“块”中,那么很显然,我们还必须找到一个地方储存文件的“元信息”,比如文件的创建者原创 2020-07-05 09:25:57 · 151 阅读 · 0 评论