tcdrain函数调用ndk工具链为Android

我正在尝试使用android ndk编译我的C代码使用termios.h中定义的tcdrain函数调用。

我遇到了问题,因为当我构build最新的android ndk时, tcdrain没有在termios.h中定义,但是如果我进入android源代码,它在termios.h中定义为仿生。

例如: https : //github.com/android/platform_bionic/blob/master/libc/include/termios.h#L44

但是当我build立ndk时,似乎在sysroot / usr / include / termios.h中有一个不同的termios.h文件?

为什么最新的ndk没有包含最新的仿生/ libc文件?

链接的源代码声明,只有在以下情况下才定义这些函数

#if __ANDROID_API__ >= 21 

所以,正如nayuta所说的,只有使用--platform=android21配置的构建环境才能获得tcdrain

如果你不能使用平台android21,你仍然可以自己定义你需要的功能。

在tcdrain的情况下可能的替代品将是

 #define tcdrain(fd) ioctl(fd, TCSBRK, 1) 

您是否使用--platform=android21或更高版本来配置您的构建环境?

在android 5.0,api level 20和更老的版本之前,函数声明被替换为android/legacy_termios_inlines. h android/legacy_termios_inlines. h

如果你配置为android 5.0或更高版本,你可以使用tcdrain