将POSIX C代码移植到Windows

时间:2012-02-08 13:23:20

标签: c windows serial-port posix termios

我刚刚完成了一个用C编写的小项目,在那里我从串口读取数据流并解析传入的数据。 该软件是为POSIX系统编写的(使用termios),并遵循使用串行i / o的标准步骤

  1. 使用open()
  2. 打开串行设备
  3. 配置通信参数(termios)
  4. 在文件句柄(fcntl)上设置阻止模式
  5. 在串行接口上​​执行read()。
  6. 完成后在串行接口上​​执行close()。
  7. 除了套接字部分,代码是直接ANSI C。

    我的问题是,如何使代码在Windows平台上运行。 这个端口不是我写的,我只想告诉那些可能有兴趣移植它的人(即琐碎的,不是那么琐碎,扯掉眼睛引发的疯狂)。

    如果有人使用Windows“Windows Services for UNIX”,他们是否可以在不修改代码的情况下使用该代码?

    所以,如果有人有这方面的经验,请分享。

1 个答案:

答案 0 :(得分:3)

应该很容易做到。名称非常不同,但调用和概念的顺序非常相似。

您正在寻找的是DCB结构,该结构应与SetComState()函数一起用于设置波特率,停止位等。然后使用SetCommTimeouts()并在COMMTIMEOUTS中设置超时值{3}}结构使后续的读取调用阻塞。

这是一张漂亮的PDF short introduction。 <子>(Backup。)