【求助】在shell脚本中,如何获取当前可用的文件描述符?

LeonTown 2014-07-10 04:41:54
例如,如下代码中:
mkfifo testfifo
exec 10000<>testfifo

我该如何判断,当前的文件描述符10000是否可用呢?
以及选择一个可用的文件描述符?
...全文
413 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
colddown 2014-07-24
  • 打赏
  • 举报
回复
引用 8 楼 LeonTown 的回复:
问题还没有解决呀,如何判断某个文件描述符是否可用啊?
在脚本里ls /proc/self/fd,凡是没有在里面的就是可用的文件描述符。
LeonTown 2014-07-24
  • 打赏
  • 举报
回复
问题还没有解决呀,如何判断某个文件描述符是否可用啊?
colddown 2014-07-18
  • 打赏
  • 举报
回复
10000好像用不了,用1000可以 $ exec 10000<>testfifo bash: 10000: Bad file descriptor $ ls -l /proc/self/fd total 0 lrwx------ 1 users 64 Jul 17 21:50 0 -> /dev/pts/4 lrwx------ 1 users 64 Jul 17 21:50 1 -> /dev/pts/4 lrwx------ 1 users 64 Jul 17 21:50 1000 -> /programs/linux-kernel-objs/arch/x86/kernel/testfifo
LeonTown 2014-07-18
  • 打赏
  • 举报
回复
当我这个程序执行起来后, 还是如下的结果: # ll /proc/self/fd/ total 0 lrwx------ 1 root root 64 Jul 18 19:14 0 -> /dev/pts/0 lrwx------ 1 root root 64 Jul 18 19:14 1 -> /dev/pts/0 lrwx------ 1 root root 64 Jul 18 19:14 2 -> /dev/pts/0 lr-x------ 1 root root 64 Jul 18 19:14 3 -> /proc/2195/fd 没见有多出个10000的文件符啊?
LeonTown 2014-07-18
  • 打赏
  • 举报
回复
引用 3 楼 colddown 的回复:
要判断文件描述符是否可用,可以试试fstat,如果返回-1代表没有使用。另一种方法是查看/proc/self/fd/。
shell脚本里面怎么判断呢? 我就是想按我说的那样,创建管道 mkfifo testfifo exec 10000<>testfifo 然后,用管道读写数据。
colddown 2014-07-15
  • 打赏
  • 举报
回复
要判断文件描述符是否可用,可以试试fstat,如果返回-1代表没有使用。另一种方法是查看/proc/self/fd/。

LeonTown 2014-07-15
  • 打赏
  • 举报
回复
真的没人吗?
PonyCheng2019 2014-07-15
  • 打赏
  • 举报
回复
楼主你想干啥?
LeonTown 2014-07-14
  • 打赏
  • 举报
回复
自己顶一下。

23,127

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧