c# - para - que es command
Declaraciones de p/invoke para el archivo io y pseudo terminal (1)
Quiero usar las funciones de archivo io (abrir, leer, escribir) y las funciones de pseudo-terminal ( http://linux.die.net/man/4/pts ) (grantpt, unlockpt, ptsname) de mono.
traducir los argumentos y los valores devueltos es trivial (aun así, te agradecería que pudieras verificarlos) pero no puedo encontrar las bibliotecas correspondientes.
Mi distribución de Linux es Arch Linux en ARM (Raspberry PI). Como la plataforma ARM es solo de 32 bits, puedo usar int32 para int / size_t, etc.
Muchas gracias.
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);
}
Las funciones parecen estar en glibc, por lo que el dllimport se vería así:
[DllImport("libc.so.6")]