termiox.h的Linux等价物是什么?

时间:2012-09-25 14:00:27

标签: c linux rhel

我有一个古老的调制解调器接口库,最初是为Solaris和Linux制作的,我试图看看它是否适用于Linux。

在Linux上编译时,我看到了:

#if ! defined(WIN32)

#include <string.h>
#include <fcntl.h>
#include <sys/stat.h>
#include <sys/types.h>
#include <stdlib.h>
#include <stdio.h>
#include <unistd.h>
#include <sys/ioctl.h>
#include <sys/time.h>
#include <termios.h>
#include <sys/termiox.h>

似乎无法找到termiox.h的位置,当我谷歌搜索它时,它只显示termios.h的结果

我不能简单地删除引用,因为有很多调用它。

有人会碰巧知道在Linux下定义termiox调用的位置吗?

操作系统版本为RHEL 5.5

引用termiox库的代码只是说它忽略了termiox选项:

 /home/local/NT/jayanthv/8.7/CallBur/lib/unix.c(556): error: struct "<unnamed>" has no field "termiox"
 if( modem_opt_ignore_termiox == No && ioctl( modem_handle, TCSETX, &mattr_current.termiox ) < 0 )

我应该继续在代码周围添加#if!defined()吗?

1 个答案:

答案 0 :(得分:0)

不要开玩笑。在man page linked by rodion的底部,它说:

  

提供termiox(7I)系统调用以兼容   以前的版本及其使用是不鼓励的。相反,termio(7I)   建议使用系统调用。

该手册页的日期是1990年。从那时起,termio has also become obsolete

  

termio.h
      此头文件已过时,已被termios.h取代,termios.h是POSIX标准的一部分。这两个头文件非常相似。但是,termio.h不包含与termios.h相同的头文件。因此,您应该确保直接查看{{1}}标题,以确保它包含您的应用程序所需的所有内容。

因此,termiox被termio取代,后者被termios取代。