当前位置:首页 » 文件管理 » linux缓存文件描述符

linux缓存文件描述符

发布时间: 2022-05-09 03:34:14

linux文件描述符表和文件的关系

Linux中的文件类型
Linux系统中把一切都看做文件,包括普通文件-、目录文件d、字符设备文件c、块设备文件b、符号链接文件l。文件描述符是内核为了高效管理已被打开的文件所创建的索引(一个非负整数),用于指代已被打开的文件,Linux下所有的的I/O操作的系统调用都是通过文件描述符执行。例如0表示标准输入、1表示标准输出、3表示标准错误
,文件描述符会在这个基础上递增。
文件描述符、文件、进程之间的关系
每个文件描述符都指向一个打开的文件相对应
不同的文件描述符可能指向同一个打开的文件
相同的文件可能被不同的进程打开,也可以在被同一个进程打开多次
文件描述符表:
进程级的列表,也就是用户区的一部分,进程每打开一个文件就会新建一个文件描述符,同时只能通过文件描述符的函数访问,否则进程无法直接对其进行访问。
系统文件表:
系统级的列表,对当前系统的所有进程都共享,每条条目包含文件偏移量、访问模式以及指向它的文件描述符的条目计数
文件系统索引节点表:
inode索引节点表(UID、GID、ctime、mtime、atime、读写执行权限、链接数、block位置)

② linux 中,怎样使用文件描述符

你说的是在shell里的应用吧,主要是重定向的时候用的多。

Bash的输入输出重定向,里面有一些例子,估计是你想要的:
http://www.linux-wiki.cn/index.php/Bash%E7%9A%84%E8%BE%93%E5%85%A5%E8%BE%93%E5%87%BA%E9%87%8D%E5%AE%9A%E5%90%91

③ linux的文件描述符号,会不会导致耗尽

Linux文件描述符是一个整数,所以打开过多的文件就会溢出。

④ linux read(0,buf,100)其中的fd=0是什么意思

shell下输入“man 2 read ” 你先看看。
ssize_t read(int fd, void *buf, size_t count);
意义:从文件描述符fd所指向的文件中读取count个字节的数据到buf所指向的缓存中。
文件描述符是由无符号整数表示的句柄,进程使用它来标识打开的文件。
文件描述符0代表标准文件。
fd是这么来的。
fd=(open或creat成功调用时的返回值)。
我上学是书上就写这么多了。

⑤ linux怎样获取文件描述符

Linux下的文件描述符是一个整型数,是对一个文件的标识,fopen打开一个文件就会返回一个相应的文件描述符

⑥ linux下重定向前后printf的输出缓存机制怎么变化

#include <stdlib.h>
#include <stdio.h>
#include <unistd.h>
#include <sys/stat.h>
#include <fcntl.h>

int main()
{
fflush(stdout);
setvbuf(stdout,NULL,_IONBF,0);
printf("test stdout\n");
int save_fd = p(STDOUT_FILENO); // 保存标准输出 文件描述符 注:这里一定要用 p 复制一个文件描述符. 不要用 = 就像是Winodws下的句柄.
int fd = open("test1.txt",(O_RDWR | O_CREAT), 0644);
p2(fd,STDOUT_FILENO); // 用我们新打开的文件描述符替换掉 标准输出
printf("test file\n");

//再恢复回来标准输出. 两种方式
//方法1 有保存 标准输出的情况
//p2(save_fd,STDOUT_FILENO);

//方法2 没有保存 标准输出的情况
int ttyfd = open("/dev/tty",(O_RDWR), 0644);
p2(ttyfd,STDOUT_FILENO);
printf("test tty\n");
}

⑦ linux 文件描述符最大是多少

人们常说linux最大有65536个文件描述符,是由于常用linux内核的默认值决定的,实际上是可以通过修改内核突破的。
了解下文件描述符,内核(kernel)利用文件描述符(file descriptor)来访问文件。文件描述符是非负整数。打开现存文件或新建文件时,内核会返回一个文件描述符。读写文件也需要使用文件描述符来指定待读写的文件。
文件描述符的有效范围是 0 到 OPEN_MAX。一般来说,每个进程最多可以打开 64 个文件(0 — 63)。对于 FreeBSD 5.2.1、Mac OS X 10.3 和 Solaris 9 来说,每个进程最多可以打开文件的多少取决于系统内存的大小,int 的大小,以及系统管理员设定的限制。Linux 2.4.22 强制规定最多不能超过 1,048,576 。

⑧ linux 文件描述符最大是多少怎么计算的

最大值是系统相关的,linux shell 输入如下命令就知道,其中的“-n: file descriptors”就是最大限制值。
# ulimit -a
-f: file size (blocks) unlimited
-t: cpu time (seconds) unlimited
-d: data seg size (kb) unlimited
-s: stack size (kb) 8192
-c: core file size (blocks) 0
-m: resident set size (kb) unlimited
-l: locked memory (kb) 64
-p: processes 128
-n: file descriptors 1024
-v: address space (kb) unlimited
-w: locks unlimited
-e: scheling priority 0
-r: real-time priority 0

⑨ linux 下/tmp是什么文件

1、/tmp文件是linux运行时产生的缓存文件,用于加速二次打开文件的速度。
2、/tmp文件在linux关机时会被系统预设指令删除的。

⑩ linux下的文件描述符是什么

文件描述符是一个很小的正整数,是打开的文件在内核中的索引.

热点内容
云服务器还用买电脑吗 发布:2024-11-18 22:42:44 浏览:666
算法开关门 发布:2024-11-18 22:37:09 浏览:477
u启动iso解压 发布:2024-11-18 22:22:03 浏览:885
oracle存储过程rollback 发布:2024-11-18 22:14:05 浏览:672
c语言学生管理系统课程设计 发布:2024-11-18 22:13:15 浏览:604
怎么在云服务器上挂机手机游戏 发布:2024-11-18 22:03:03 浏览:317
ppp拨号服务器搭建 发布:2024-11-18 22:02:59 浏览:586
幻灵游侠脚本 发布:2024-11-18 21:57:39 浏览:457
node加密 发布:2024-11-18 21:56:13 浏览:978
养女ftp 发布:2024-11-18 21:56:02 浏览:818