gpt4 book ai didi

serial-port - 如何在 .NET Core 2.0 中访问 errno?

转载 作者:行者123 更新时间:2023-12-03 19:36:46 26 4
gpt4 key购买 nike

我正在使用来自 .NET Core 2.0 的 libc 调用来获得 Linux 上的串行端口功能。

我正在导入这样的 libc 函数:

[DllImport("libc")]
public static extern int read(int fd, IntPtr buf, int count);

然后它是这样调用的:
int result = Libc.read(fileDescriptor.Value, readingBuffer, READING_BUFFER_SIZE);

如果读取函数失败,结果变量将包含 -1。

如何从 C#/.NET Core 2.0 获取 errno 变量,以便从失败的读取调用中获取详细的错误代码?

最佳答案

正确的代码是这样的:

int fileDescriptor = Libc.open(deviceName, Libc.OpenFlags.O_RDWR | Libc.OpenFlags.O_NONBLOCK);
if (fileDescriptor == -1)
{
var errno = System.Runtime.InteropServices.Marshal.GetLastWin32Error();
...
}

关于serial-port - 如何在 .NET Core 2.0 中访问 errno?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47829750/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com