SFI:short file identifier,短文件描述符 SFI的取值必须在0001-001E之间,即0-30 SFI存在的理由:有些COS命令可以不需要事先选择文件而直接通过SFI快速访问文件,提高了文件的访问速度…
#!/bin/bash      最近在看shell,各种困惑,不过解决困惑的感觉还是很不错的.废话少说,linux中使用文件描述符来标识每个文件对象.文件描述符为一个非负整数,可以唯一标识会话中打开的文件.每个过程最多可以有9个文件描述符.     linux使用的标准文件描述符:     标准输入STDIN就是0,标准输出STDOUT就是1,标准错误输出STDERR就是2.而我们也可以自己创建文件描述符3~8.     将今天看到的一段代码: 1    #!/bin/bash 2    ex…
文件描述符标志的概念 文件描述符标志(目前就只有一个close-on-exec): 它仅仅是一个标志,当进程fork一个子进程的时候,在子进程中调用了exec函数时就用到了这个标志.意义是执行exec前是否要关闭这个文件描述符.要把文件描述符标志和文件状态标志区分开来. 文件状态标志:在系统内核维护的系统打开文件表中,每一个系统文件表项都有一个关于write.read等的标志. close-on-exec是一个进程所有文件描述符(文件句柄)的位图标志,每个比特位代表一个打开的文件描述符的标志位,…
看到好几篇文章讲述exec都是一知半解,所以我尽量说的清楚明白一些.本文首先讲述Linux文件描述符,然后是exec,最后举例说明exec I/O重定向及其用法. 概念:exec命令用于调用并执行指令的命令.exec命令通常用在shell脚本程序中,可以调用其他的命令.如果在当前终端中使用命令,则当指定的命令执行完毕后会立即退出终端. 语法:exec(选项)(参数) 选项:-c:在空环境中执行指定的命令. 参数:指令:要执行的指令和相应的参数. 实例:首先使用echo命令将文本“Linux C+…
Abstract: 1) Linux Shell 命令的标准输入.标准输出.标准错误,及其重定位: 2)Linux Shell 操作自定义文件描述符: 文件描述符是与文件相关联的一些整数,他们保持与已打开文件的关联.众所周知的文件描述符是标准输入stdin.标准输出stdout.标准错误stderr,我们可以重定位这些文件描述符关联文件的内容到另外一个文件文件描述符. 1. Linux Shell 命令的标准输入.标准输出.标准错误 当我们在编写 shell 脚本时,我们会非常频繁地操作执行命令…
1. fd:在形式上是一个非负整数.实际上他是一个索引值.指向kernal为每一个进程所维护的该进程打开文件的记录表. 当程序打开一个文件或者创建一个新文件的时候kernal向进程返回一个文件描述符. 优点:兼容POSIX标准,许多系统调用都依赖于它:缺点:不能移植到unix之外的系统上去 fp:FILE*指针变量标识符 优点:是C语言的通用格式,便于移植 2. vfork:使用方法同fork差不多,也适用于创建子进程 vofork特点: 1)在子进程调用exec或exit之前,它在父进程的空间…
https://www.cnblogs.com/zengkefu/p/5602473.html最大文件描述符 https://blog.csdn.net/fanren224/article/details/79971359 https://www.cnblogs.com/ruiy/p/10761004.html Linux内核本身有文件描述符最大值的**,你可以根据需要更改: 系统最大打开文件描述符数:/proc/sys/fs/file-max临时性设置:echo 1000000 > /proc…
文件描述符的复制 MMAP文件映射 ftruncate修改文件大小 文件描述符的复制 ​ 系统调用函数dup和dup2可以实现文件描述符的复制,经常用来重定向进程的stdin(0), stdout(1), stderr(2). ​ dup返回新的文件描述符(没有使用的文件描述符的最小编号).这个新的描述符是旧文件描述符 的拷贝.这意味着两个描述符共享同一个数据结构. ​ dup2允许调用者用一个有效描述符(oldfd)和目标描述符(newfd),函数成功返回时,目标描述符将变成旧描述符的复制品,…
  日期:2019/3/24 内容:Linux文件描述符.   一.基本概念 文件描述符(File Descriptor) 一个非负整数.应用程序利用文件描述符来访问文件.打开现存文件或新建文件时,内核会返回一个文件描述符.读写文件也需要使用文件描述符来指定待读写的文件. 二.文件读写 头文件的解析 sys/stat.h status fcntl.h file control   int flags参数取值 必须取值:O_RDONLY.O_WRONLY.O_RDWR. 可选取值(两种取值通过 |…
端口和套接字,用于确定指定主机上的哪个本地进程使用了哪个协议和哪台远程主机上的哪个进程进行了通信.端口和套接字的使用可以基于以下几点: ①为每个应用过程分配一个过程标识符(Process ID),每次启动一个进程时,这个ID都可能是不同的. ②进程ID因操作系统平台不同而不同,因而它们是不统一的. ③一个服务器过程能够同时与多个客户连接,因而简单的连接标识符不可能是唯一的. 端口和套接字概念提供了一种以统一的方式唯一地标识连接以及参与连接的程序和主机的方法,而不管特定的过程ID. ()端口  网…