⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pipe.c

📁 带中文注释的 linux 0.11 源代码0.11,很好的
💻 C
字号:
/** linux/fs/pipe.c** (C) 1991 Linus Torvalds*/#include <signal.h>		// 信号头文件。定义信号符号常量,信号结构以及信号操作函数原型。#include <linux/sched.h>	// 调度程序头文件,定义了任务结构task_struct、初始任务0 的数据,// 还有一些有关描述符参数设置和获取的嵌入式汇编函数宏语句。#include <linux/mm.h> /* for get_free_page */	/* 使用其中的get_free_page */// 内存管理头文件。含有页面大小定义和一些页面释放函数原型。#include <asm/segment.h>	// 段操作头文件。定义了有关段寄存器操作的嵌入式汇编函数。//// 管道读操作函数。// 参数inode 是管道对应的i 节点,buf 是数据缓冲区指针,count 是读取的字节数。intread_pipe (struct m_inode *inode, char *buf, int count){  int chars, size, read = 0;// 若欲读取的字节计数值count 大于0,则循环执行以下操作。  while (count > 0)    {// 若当前管道中没有数据(size=0),则唤醒等待该节点的进程,如果已没有写管道者,则返回已读// 字节数,退出。否则在该i 节点上睡眠,等待信息。      while (!(size = PIPE_SIZE (*inode)))	{	  wake_up (&inode->i_wait);	  管道缓冲区长度(PAGE_SIZE) 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -