我正在尝试通过使用android ndk编译我的c代码来使用termios.h中定义的tcdrain函数调用.
我有问题,因为当我构建最新的android ndk时,tcdrain没有在termios.h中定义,但是如果我进入android源代码,它在termios.h中定义为bionic.
例如:https://github.com/android/platform_bionic/blob/master/libc/include/termios.h#L44
但是当我构建ndk时,似乎在sysroot /usr/include / termios.h中有一个不同的termios.h文件?
为什么最新的ndk没有与最新的仿生/ libc文件相同的包含文件?
解决方法:
您链接的源代码声明只有在以下情况下才会定义这些函数
#if __ANDROID_API__ >= 21
所以,正如nayuta所说,只有使用–platform = android21配置的构建环境才能使用tcdrain.
如果你不能使用plafform android21,你仍然可以自己定义你需要的功能.
如果是tcdrain,可能会有替换
#define tcdrain(fd) ioctl(fd, TCSBRK, 1)