C# PInvoking stdin、stdout和stderr到非托管dll

C# PInvoking stdin、stdout和stderr到非托管dll,c#,pinvoke,C#,Pinvoke,我有一个C头文件,其中包含如下内容: void init(FILE* in, FILE* out, FILE* err); 我猜这等同于以下品沃克签名: [DllImportAttribute("mylib", EntryPoint = "init")] public static extern void init(IntPtr @in, IntPtr @out, IntPtr err); 顺便说一句,我想调用这个方法。我可以从Console.In,Console.Out,Console.E

我有一个C头文件,其中包含如下内容:

void init(FILE* in, FILE* out, FILE* err);
我猜这等同于以下品沃克签名:

[DllImportAttribute("mylib", EntryPoint = "init")]
public static extern void init(IntPtr @in, IntPtr @out, IntPtr err);
顺便说一句,我想调用这个方法。我可以从Console.In,Console.Out,Console.Error获取IntPtr吗

它应该在Linux和Windows上运行,而不是仅在Windows上运行。

您可以使用获取标准输入(STD\u输入\u句柄)、输出(STD\u输出\u句柄)和错误(STD\u错误\u句柄)文件的句柄

然后,您可以使用WriteFile、ReadFile函数从这些文件中进行写入和读取

之后,如果仍然需要文件结构,请按照以下步骤创建一个文件结构


应该提到它,但我正在Linux上工作。不过,我会将其标记为正确:)谢谢您的回答:),所以实际上在linux中,您可以使用fdopen来获取文件描述符的文件结构<代码>文件*f=fdopen(标准文件号,“w”)不重复。也需要在Linux上工作。