我的.NET核心应用程序使用了一个返回标准errno代码的本地库。如何在两个平台上统一处理?POSIX错误代码和托管异常/错误代码之间有什么对应关系吗?
发布于 2019-09-17 04:49:36
有一个NuGet包Mono.Posix.NETStandard,它实现了各种本机/托管接口,并与.NET框架和.NET核心兼容。
您正在寻找函数Mono.Unix.Native.NativeConvert.ToErrno(int),它接受特定于系统的errno整数值,并将相关的符号表示形式作为Mono.Unix.Native.Errno枚举的成员返回。
还有另一种方法,函数NativeConvert.FromErrno(Errno)会将给定的符号值转换为系统特定的整数。
以你问题中的例子为例:
Console.WriteLine(Mono.Unix.Native.NativeConvert.ToErrno(104).ToString());Windows10 x64上的输出:
EBADMSGUbuntu 18.04.2 LTS x64上的输出:
ECONNRESEThttps://stackoverflow.com/questions/57871465
复制相似问题