程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了使用Java中的编号文件描述符大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决使用Java中的编号文件描述符?

开发过程中遇到使用Java中的编号文件描述符的问题如何解决?下面主要结合日常开发的经验,给出你关于使用Java中的编号文件描述符的解决方法建议,希望对你解决使用Java中的编号文件描述符有所启发或帮助;

我非常确定这不能使用纯Java来完成- 您可能必须使用本机代码将文件描述符绑定到fileDescriptor对象或fileinputStream或fiLeoutputStream对象。

如果使用的是linux,* BSD或macOS,则可以使用伪文件/ dev / fd / nnn访问文件描述符nnn。

解决方法

我需要从Java访问编号文件描述符-除0、1或2之外。

如何才能做到这一点?我查看了FileDescriptor该类,但没有找到用给定的文件描述符号初始化它的任何方法。

作为一个具体示例,假设Java被另一种编程语言称为子进程。文件描述符3和4由另一种语言提供,用于输入和输出。

我在Java中需要的是InputStreamOutputStream连接到这些文件描述符的对象,就像System.in,System.out和System.error都连接到文件描述符0、1和2。

我正在使用Java 1.6,它应该在类似Unix的系统上运行。

经过测试的工作解决方案:

文件描述符特殊文件系统条目的答案确实将我指向以下可行的解决方案:

  1. 找出类似Unix的系统是否以及在何处具有一个特殊的文件系统,其中包含所有文件描述符的命名条目。

    • 我正在使用FreeBSD,其中fdescfs(5)是执行此操作的文件系统。在Linux下会是procfs。
    • 确保已挂载此文件系统

    • FreeBSD的:把fdescfs /dev/fd fdescfs rw 0 0/etc/fstab

或@H_782_13@mount -t fdescfs null /dev/fd在sHell提示符下运行(可能是sudo)

  1. 使用New FileInputStream("/dev/fd/3")new FiLeoutputStream("/dev/fd/4")获取连接到文件描述符的流(路径用于FreeBSD,用您的操作系统路径替换)

大佬总结

以上是大佬教程为你收集整理的使用Java中的编号文件描述符全部内容,希望文章能够帮你解决使用Java中的编号文件描述符所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。