我想使用来自单声道的文件 io 函数(打开、读取、写入)和伪终端(http://linux.die.net/man/4/pts)函数(grantpt、unlockpt、ptsname)。
翻译参数和返回值是微不足道的(不过,如果你能验证它们,我会很感激)但我找不到相应的库。
我的 Linux 发行版是 Arch Linux on ARM (Raspberry PI)。由于 ARM 平台只有 32 位,我可以将 int32 用于 int/size_t 等
非常感谢你。
internal class LinuxNativeMethods
{
//int open(const char *pathname, int flags);
[DllImport("??.so")]
internal extern int open(string name, int flags);
//ssize_t read(int fd, void *buf, size_t count);
[DllImport("??.so")]
internal extern int read(int fd, byte[] buffer, int length);
//ssize_t write(int fd, const void *buf, size_t count);
[DllImport("??.so")]
internal extern int write(int fd, byte[] buffer, int length);
//int grantpt(int fd);
[DllImport("??.so")]
internal extern int grantpt(int fd);
//int unlockpt(int fd);
[DllImport("??.so")]
internal extern int unlockpt(int fd);
//i later marshall the pointer to a string
//char *ptsname(int fd);
[DllImport("??.so")]
internal extern IntPtr ptsname(int fd);
}