【问题标题】:C code in Linux to C code in WindowsLinux 中的 C 代码到 Windows 中的 C 代码
【发布时间】:2011-02-24 06:41:44
【问题描述】:

我有一个用 C 语言编写的代码,可以在 Linux 上运行。我希望这个程序在 Windows 中运行,我必须在代码中做出什么不同吗?

这是使用从此处获取的套接字进行服务器/客户端通信的代码: http://www.linuxhowtos.org/C_C++/socket.htm

【问题讨论】:

  • 会有差异。您应该尝试移植您的代码并在此处询问有关特定问题的问题。

标签: c windows linux tcp sockets


【解决方案1】:

您可以在CygwinMINGW 下编译您的代码,这两者都提供了一定程度的Linux-system-call-to-Windows-system-call-mapping,并且您可以避免在以下位置重写任何内容全部。

【讨论】:

  • 真的!但是,有时必须准备好代码才能在 Cygwin 上编译,并且不支持某些套接字编程语句。
【解决方案2】:

您必须将 Linux 代码移植到 Windows。 Linux 和 Windows 套接字之间存在差异。您可以查看this 页面了解更多信息。

另外,this 将帮助您进行一些移植。

【讨论】:

    【解决方案3】:

    简要查看您引用的那篇文章会发现一些可能需要更改的内容(假设您将使用 Visual Studio 之类的工具来构建它):

    • read 替换为recv
    • write 替换为send
    • bzero 替换为memset
    • 添加对WSAStartupWSAShutdown的调用

    【讨论】:

      【解决方案4】:

      很多!马克似乎说得最好。但是,recv 和 send 仍然可以工作到文件描述符。最糟糕的部分是缺少诸如 timeval struct 之类的 GNU 功能,而无需通过可怕的窗口包括。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-05-11
        • 1970-01-01
        • 2023-03-09
        • 1970-01-01
        • 1970-01-01
        • 2020-04-02
        相关资源
        最近更新 更多