当前位置:首页 » 操作系统 » linux管道文件

linux管道文件

发布时间: 2022-05-19 21:23:12

‘壹’ 请教,linux里面提到的管道是什么意思

管道的话是Linux进程间通讯的工具。
分为匿名管道(pipe)和命名管道(fifo)。
主要是通过管道文件来完成本地进程间的通讯。

匿名管道
http://blog.csdn.net/oguro/article/details/53841949
命名管道
http://blog.csdn.net/ljianhui/article/details/10202699

‘贰’ linux下的文件可以分为5种不同的类型

尽管在Linux系统中一切都是文件,但是每个文件的类型不尽相同,因此Linux系统使用了不同的字符来加以区分,常见的字符如下所示。
-:普通文件。
d:目录文件。
l:链接文件。
b:块设备文件。
c:字符设备文件。
p:管道文件。

‘叁’ linux里面文件的文件的st-mode,里面的fifo是什么东西文件里面的fifo是什么东西

在st_mode的特征位定义里有:
S_IFIFO 0010000 //先进先出(fifo)

fifo是管道文件,分为分为无名管道和有名管道。
无名管道例如:ls-l | grep name 使用管道可将一个命令的输出作为另一个命令的输入。命令执行时,无名管道对于管道两端的进程而言,就是一个文件,但它不是普通的文件,它不属于某种文件系统,而是单独构成一种文件系统,并且只存在于内存中。无名管道是临时的,执行完成后会自动消失。由于没有名字,无名管道只能用于亲缘关系的进程间通信.
有名管道即FIFO,在文件系统中有自己文件名路径名,这样即使两个不相关(没有亲缘关系)的进程,只要可以访问该路径,就能够彼此通过创建FIFO相互(经常性的而非临时的)通信。有名管道的名字存在于文件系统中,但内容还是存放在内存中。
S_IFIFO 即表示有名管道文件。具体介绍和应用,还请翻阅“进程间通信--管道”的相关内容。

‘肆’ Linux管道文件的属性位是什么其管道的作用是什么

属性位是p. 希望对你有帮助,希赛上很多Linux资料的!

‘伍’ 系统linux 下的 管道 和 重定向 这两个概念怎么理解

管道是一个先进先出的特殊文件,一方只能依次写进去,另一方也只能依次读出来
理解管道符前先要知道一个进程运行后有3个最基本的文件,标准输入(0表示),标准输出(1表示),错误输出(2表示)
通过命令查看当前3个基本文件,ls-l/proc/$$/fd/
shell中的管道符做了3件事,
1,先创建一个管道文件pipe
2,将管道符前面的一个命令的标准输出替换为pipe
2,将管道符后面的一个命令的标准输入替换为pipe
例子
echotest>/tmp/test
tail-f/tmp/test|cat&
查看tail命令3个基本文件
ls-l/proc/`pidoftail`/fd
查看cat命令3个基本文件
ls-l/proc/`pidofcat`/fd
shell重定向本身从编程角度理解就是赋值语句,0,1,2本身理解为3个变量,
<和>表示赋值符号,变量名只能用数字表示,变量只能在/proc/进程pid/fd/下查看
<以只读方式打开一个文件,然后把打开的文件赋值给变量
>以只写方式打开一个文件,然后把打开的文件赋值给变量
<>以读写方式打开一个文件,然后把打开的文件赋值给变量
exec1<>/tmp/info表示读写打开/tmp/info,然后赋值给变量1,执行后其他命令打印的信息都会输入到/tmp/info里,默认所有的打印信息(echoaaaaaa)都会获取变量1里面打开的文件,然后把要打印的信息写到这个文件里面
如果写成exec1</tmp/info这种方式,那么打印的信息就没法写进去了,因为是只读方式打开的
ls-l/dev/fd/或者ls-l/proc/$$/fd/查看
cat/proc/cmdline>/tmp/cmd通常啥这种写法,赋值符号前面没写具体的变量名,默认就是1,也就是cat/proc/cmdline1>/tmp/cmd
echor>/tmp/r&&exec6</tmp/r
lsof|grep/tmp/r可以查看到6r属性,文件以读方式开打,并且复制给变量6

‘陆’ linux系统管道文件的属性位是什么

管道文件一般都是存放在/dev/目录下面,你可以执行下面的命令去查看一下它的属性位:
ls -l /dev/ | grep "^p"
上面这条命令的意思就是:列出/dev/目录下的文件的详细信息,然后查找以p开头的文件,这里的p就是管道文件类型了。
管道一般的权限位是:所属者有读写权限,而所属组与其他用户都没有权限。

‘柒’ Linux系统中有哪几种文件类型

第一种:普通文件。就是一般存取的文件,由ls-al显示出来的属性中,第一个属性为 [-];另外,依照文件的内容,又大致分为:
1、纯文本文件:这是Unix系统中最多的一种文件类型,之所以称为纯文本文件,是因为内容可以直接读到数据,比如数字、字母等。设置文件几乎都属于这种文件类型。
2、二进制文件:系统其实仅认识且可以执行二进制文件。Linux中的可执行文件就是这种格式的。
3、数据格式的文件:有些程序在运行过程中,会读取某些特定格式的文件,那些特定格式的文件也可以称为数据文件。
第二种:目录文件。就是目录,第一个属性为[d]。
第三种:连接文件。类似Windows下的快捷方式,第一个属性为[l]。
第四种:设备文件。与系统外设及存储等相关的一些文件,通常都集中在/dev目录,又分为两种。
1、块设备文件:就是存储数据以供系统存取的接口设备,简单而言就是硬盘,第一个属性为 [b]。
2、字符设备文件:即串行端口的接口设备,比如键盘、鼠标等,第一个属性为 [c]。
第五种:套接字文件:这类文件通常用在网络数据连接,可以启动一个程序来监听客户端的要求,客户端就可以通过套接字来进行数据通信。第一个属性为[s],常在
/var/run目录中看到这种文件类型。
第六种:管道文件:FIFO也是一种特殊的文件类型,它主要的目的是,解决多个程序同时存取一个文件所造成的错误,FIFO是first-in-first-out的缩写,第一个属性是[p]。
更多Linux知识,可关注“老男孩Linux”公众号

‘捌’ "Linux的常用的文件类型分为哪六种各自的标志符是什么

在Linux中,有一句经典的话叫做一切皆文件”。

文件分类:

(1)普通文件(regular):存在于外部存储器中,用于存储普通文件。

(2)目录文件(directory):用于存放目录项,是文件系统管理的重要文件类型。

(3)管道文件(pipe):一种用于进程间通信的特殊文件,也称为命名管道FIFO。

(4)套接字文件(socket):一种用于网络间通信的特殊文件。

(5)链接文件(link);用于间接访问另外一个目标文件,相当于widows快捷方式。

(6)字符设备文件(character):字符设备在应用层的访问结构。

(7)块设备文件(block):块设备在应用层的访问接口。

在linux终端下输入ls -l命令,学习linux每条文件信息的最左边的一个字符即表示了该文件的类别:

b:块设备文件

c:字符设备文件

d:目录文件

l:链接文件

p:管道文件

-:普通文件

s:套接字文件

‘玖’ linux 管道原理

Linux原理的学习,我打算由浅入深,从上之下,也就是先了解个大概再逐个深入。先了解一下Linux的进程先。

一、Linux进程上下文

Linux进程上下文,我理解就是进程组成元素的集合。包括进程描述符tast_struct,正文段,数据段,栈,寄存器内容,页表等。

1)tast_struct

它是一种数据结构,存储着进程的描述信息,例如pid,uid,状态,信号项,打开文件表等。是进程管理和调度的重要依据。

2)用户栈和核心栈

顾名思义,用户栈是进程运行在用户态使用的栈,含有用户态执行时候函数调用的参数,局部变量等;核心栈是该进程运行在核心态下用的栈,保存调用系统函数所用的参数和调用序列。这两个栈的指针都保存在tast_struct结构中。

3)寄存器

保存程序计数器,状态字,通用寄存器,栈指针。

4)页表

线性地址到物理地址的映射

5)正文段,数据段。

二、Linux进程的状态

Linux中进程共有5个状态:就绪,可中断睡眠,不可中断睡眠,暂停,僵死。也就是说,linux不区分就绪和运行,它们统一叫做就绪态。进程所处的状态记录在tast_struct中。

三、进程的控制

1)进程树的形成

计算机启动后,BIOS从磁盘引导扇区加载系统引导程序,它将Linux系统装入内存,并跳到内核处执行,Linux内核就执行初始化工作:初始化硬件、初始化内部数据结构、建立进程0。进程0创建进程1,进程1是以后所有创建的进程的祖先,它负责初始化所有的用户进程。进程1创建shell进程,shell进程显示提示符,等待命令的输入。

2)进程的创建

任何一个用户进程的创建都是由现有的一个进程完成的,进程的创建要经过fork和exec两个过程。Fork是为新进程分配相应的数据结构,并将父进程的相应上下文信息复制过来。Exec是将可执行文件的正文和数据转入内存覆盖它原来的(从父进程复制过来的),并开始执行正文段。

3)进程的终止

系统调用exit()就可自我终结,exit释放除了tast_struct以外的所有上下文,父进程收到子进程终结的消息后,释放子进程的tast_struct。

4)进程的调度

进程的调度是由schele()完成的,一种情况是,当处理机从核心态向用户态转换之前,它会检查调度标志是否为1,如果是1,则运行schele(),执行进程的调度。另一种情况是进程自动放弃处理机,时候进行进程调度。

进程的调度过程分为两步,首先利用相关策略选择要执行的进程,然后进行上下文的切换。

四、进程的通信

进程的通信策略主要有,消息,管道,消息队列,共享存储区和信号量。

1)信息

消息机制主要是用来传递进程间的软中断信号,通知对方发生了异步事件。发送进程将信号(约定好的符号)发送到目标进程的tast_struct中的信号项,接收进程看到有消息后就调用相应的处理程序,注意,处理程序必须到进程执行时候才能执行,不能立即响应。

2)管道

我理解就是两个进程使用告诉缓冲区中的一个队列(每两个进程一个),发送进程将数据发送到管道入口,接收进程从管道出口读数据。

3) 消息队列

消息队列是操作系统维护的一个个消息链表,发送进程根据消息标识符将消息添加到制定队列中,接收进程从中读取消息。

4)共享存储区

在内存中开辟一个区域,是个进程共享的,也就是说进程可以把它附加到自己的地址空间中,对此区域中的数据进行操作。

5)信号量

控制进程的同步。

‘拾’ linux drwxr-xr-x 什么意思

1、读(read),写(write),执行r(recute)简写即为(r,w,x),亦可用数字来(4,2,1)表示

4、文件的权限为rw-r-r-也就是分别表示所有者(属主)有读写权限,所有组(属组)有读权限,其余人也仅有读权限。

5、普通文件即实际保存数据的地方,其并不具备删除自身的权限:

r:可读取文件的实际内容

w:可编辑、新增、修改该文件的实际内容

x:可被执行

6、目录文件即保存有目录结构和文件权限:

r:可读取目录结构和权限

w:可更改目录结构列表、新建、删除、重命名、转移子文件、目录

x:表示用户可进入到该目录中

(10)linux管道文件扩展阅读:

1、Linux的文件基本上分为三个属性:可读(r),可写(w),可执行(x)。但是这里有十个格子可以添(具体程序实现时,实际上是十个bit位)。第一个小格是特殊表示格,表示目录或连结文件等等,d表示目录,例如drwx------;l表示连结文件,如lrwxrwxrwx;如果是以一横“-”表示,则表示这是文件。其余剩下的格子就以每3格为一个单位。

2、因为Linux是多用户多任务系统,所以一个文件可能同时被许多人使用,所以我们一定要设好每个文件的权限,其文件的权限位置排列顺序是(以-rwxr-xr-x为例):

rwx(Owner)r-x(Group)r-x(Other)

3、这个例子表示的权限是:使用者自己可读,可写,可执行;同一组的用户可读,不可写,可执行;其它用户可读,不可写,可执行。另外,有一些程序属性的执行部分不是X,而是S,这表示执行这个程序的使用者,临时可以有和拥有者一样权力的身份来执行该程序。一般出现在系统管理之类的指令或程序,让使用者执行时,拥有root身份。

热点内容
谷能压缩机 发布:2025-01-13 15:44:30 浏览:412
电脑电脑直连通讯ftp 发布:2025-01-13 15:38:03 浏览:717
nvm存储 发布:2025-01-13 15:36:19 浏览:552
京东架构师缓存经验 发布:2025-01-13 15:33:00 浏览:726
android图片颜色 发布:2025-01-13 15:26:09 浏览:268
国家税务总局电脑服务器 发布:2025-01-13 15:10:24 浏览:596
金立老款机的开机密码是多少 发布:2025-01-13 15:04:45 浏览:456
湖南网上办税初始密码多少 发布:2025-01-13 15:02:49 浏览:417
怎么使用笔记本连接服务器 发布:2025-01-13 15:02:48 浏览:705
长城cs75plus选哪个配置 发布:2025-01-13 14:54:05 浏览:22