2014-09-29 85 views
3

我想通过我的编译C代码的Android NDK使用在termios.h定义tcdrain函数调用。tcdrain函数调用的Android

我有问题,因为当我打造的最新的Android NDK,tcdrain没有在termios.h中定义,但如果我去它在termios.h定义为仿生Android源代码内。

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

但是当我建立NDK的,它似乎有在SYSROOT/usr/include目录/ termios.h不同termios.h文件?

为什么最新的NDK与最新的仿生/ libc文件没有相同的包含文件?

回答

3

你的源代码链接的状态,这些功能仅定义,如果下式成立

#if __ANDROID_API__ >= 21 

如此,因为那由多说,你将有tcdrain只用--platform=android21配置构建环境。

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

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

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

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

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

如果您为Android 5.0或更高版本进行配置,则可以使用tcdrain