P的声明/援引文件IO和伪终端(Declarations of p/invoke for file

2019-09-28 05:45发布

我想使用IO函数的文件(打开,读,写)和伪终端( http://linux.die.net/man/4/pts从单声道)的功能(grantpt,unlockpt,ptsname)。

翻译参数和返回值是微不足道的(不过,我将不胜感激,如果你能验证它们),但我无法找到相应的图书馆的。

我的Linux发行版是Arch Linux的基于ARM(树莓PI)。 作为ARM平台是只有32位,我可以只使用对于int /为size_t等INT32

非常感谢你。

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);
}

Answer 1:

该功能似乎是在glibc的,所以dllimport的会是这个样子:

[DllImport("libc.so.6")]


文章来源: Declarations of p/invoke for file io and pseudo terminal