C# 如何打开/使用文件描述符
我有一个特别的问题,我有一些程序,我不能修改,但它提供了一些功能,我想在办公室内使用。因此,我正在为Office编写一个插件,它接收我的文档,在后台执行程序,将文档放在stdin上。程序写入标准输出,我把它带回程序进行后期处理 这一切都很好,除了程序要求输入密码,我不想输入stdin。该工具可以从任何其他输入流中读取密码,但需要读取的文件描述符的编号 因此,我的问题是:如何(在.net环境中)在文件描述符上打开一个可以作为该程序参数的数字流?理想情况下,我想写一些东西,比如:C# 如何打开/使用文件描述符,c#,file-io,stdout,stdin,file-descriptor,C#,File Io,Stdout,Stdin,File Descriptor,我有一个特别的问题,我有一些程序,我不能修改,但它提供了一些功能,我想在办公室内使用。因此,我正在为Office编写一个插件,它接收我的文档,在后台执行程序,将文档放在stdin上。程序写入标准输出,我把它带回程序进行后期处理 这一切都很好,除了程序要求输入密码,我不想输入stdin。该工具可以从任何其他输入流中读取密码,但需要读取的文件描述符的编号 因此,我的问题是:如何(在.net环境中)在文件描述符上打开一个可以作为该程序参数的数字流?理想情况下,我想写一些东西,比如: process.s
process.start("start-program --password-fd " + x);
stream = new StreamWriter(x);
stream.write("secritpwd");
等等。。(但后来神奇地纠正了,这样它就能工作了;)
我希望有人能帮助我
谢谢文件描述符不是Windows的一部分-它们是C运行时库的一部分。你必须在C或C++中写一个DLL来做你的文件I/O,然后从你的C程序中调用它。从C DLL获取文件描述符编号,以传递给其他代码。文件描述符不是Windows的一部分,而是C运行时库的一部分。你必须在C或C++中写一个DLL来做你的文件I/O,然后从你的C程序中调用它。从C DLL中获取要传递给其他代码的文件描述符编号。此链接将帮助您启动并从以下位置获取逻辑:
Maby此链接将帮助您从以下位置开始并获取逻辑:
我不确定这个应用程序所说的“文件描述符”到底是什么意思,但您可以传递可继承匿名管道的句柄。看见(这假设您至少在.NET 3.5上。) 基本大纲如下:
- 实例化匿名PipeServerStream
- 将管道句柄(
)作为命令行参数传递给C可执行文件pipeServer.getclienthandleastring()
- 写入匿名PipeServerStream
- 实例化匿名PipeServerStream
- 将管道句柄(
)作为命令行参数传递给C可执行文件pipeServer.getclienthandleastring()
- 写入匿名PipeServerStream