C程序从WINDOWS 迁移到LINUX的一点经验。

C程序从WINDOWS 迁移到LINUX的一点经验

 

      好多年不写C的代码了,突然有一个人找上门来,说我6年前写的一段代码能不能移植到LINUX下,晕倒,6年前啥东西,我几乎都忘光了。不敢立刻答应,说回家找找源代码,呵呵感谢vss,我居然找到了代码,再看代码,为当年自己的丰富注释给感动坏了,终于回忆起这个程序的作用了,就是定时去读一个端口的数据,然后解释数据,后写入数据库一个表,详细代码就在这里说了。只说我在LINUX下如何编译这个程序的经验吧。

       原程序是VC写的,肯定那些和WINDWS图形界面相关的玩意都得去掉,LINUX下运行,要改成X-WINDOW估计很麻烦,我考虑后决定将这个程序改为一个命令行的程序。将核心的功能代码提取出来,从一个LINUX下的程序源码COPY了一个命令行接口代码,做一个简单的外壳程序。

       gcc编译,出现1000+错误,正常,要不出错我还觉得奇怪,仔细看了一下主要出在标准IO的头文件上stdio.h,难道这个LINUX下和WINDOWS下差异这么大?不至于吧,仔细看了一下代码,原来是从WINDOWS 传到LINUX下到printf的格式上多了一个软回车符,晕倒,替换掉。再编译,呵呵,少了许多变成了23处错误了。再查错误,

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 传统的Windows桌面程序是指那些运行在Windows操作系统上的软件程序,它们通常使用Windows的图形界面(GUI)进行交互。这种程序常常需要依赖于特定版本的Windows操作系统和相关的库和环境。 而Docker是一种容器化技术,它可以将应用程序及其依赖打包成独立的容器,并在各种不同的操作系统上运行,包括LinuxWindows等。通过Docker,我们可以实现应用程序的一致性和可移植性,同时大大降低了部署和运维的复杂性。 Linux是一种自由和开放源代码的操作系统,广泛应用于服务器领域。相比于WindowsLinux操作系统具有更高的性能和可靠性,而且它支持更多的编程语言和开发框架,并提供更多的命令行工具和系统配置选项。因此,许多开发人员和系统管理员更喜欢在Linux上进行开发和部署。 传统的Windows桌面程序可能无法直接在Linux上运行,但通过Docker,我们可以在Linux上创建一个Windows容器,将传统的Windows桌面程序打包在容器中,并在Linux上运行。这使得开发人员可以在Linux环境中进行开发和测试,而无需购买和维护额外的Windows操作系统。此外,由于容器的独立性,我们可以轻松地在不同的环境中运行同一个应用程序,而无需担心因为操作系统差异导致的兼容性问题。 总而言之,传统的Windows桌面程序可以通过使用Docker技术在Linux上运行,这为开发人员带来了更大的灵活性和便利性。同时,Linux作为一个开放的操作系统,提供了更多的选择和功能,使得它成为许多开发和部署的首选平台。 ### 回答2: 传统Windows桌面程序是指基于Windows操作系统开发的传统桌面应用程序,例如Microsoft Office、Adobe Photoshop等。这些程序需要在Windows环境中运行,依赖于Windows操作系统和相关的组件。在部署和管理这些程序时,通常需要考虑安装、升级、备份等问题,可能存在一些兼容性和稳定性的挑战。 而Docker是一种容器化技术,它可以将应用程序和其依赖的组件打包成一个独立的容器,使得应用程序的运行环境与底层的操作系统解耦。Docker可以在不同的操作系统上运行,包括Linux。通过使用Docker,我们可以方便地在Linux环境中部署和管理应用程序,而无需关心底层操作系统的差异。 Linux作为一个开源的操作系统,具有高度的可定制性和灵活性。它广泛应用于服务器、嵌入式系统等领域。通过将传统Windows桌面程序容器化为Docker镜像,我们可以在Linux环境中轻松运行这些程序,并且可以更方便地管理多个应用程序的部署和升级。此外,由于Docker具有轻量级和高效的特性,使得在Linux环境中运行传统Windows桌面程序更加高效和节省资源。 总之,传统Windows桌面程序可以通过Docker在Linux环境中运行,这样可以简化部署和管理,提高效率和资源利用率。同时,Linux作为一个开源的操作系统,可以为传统Windows桌面程序提供更加灵活和定制化的环境。 ### 回答3: 传统windows桌面程序是指在Windows操作系统上运行的应用程序,它们通常使用Windows的图形用户界面(GUI)进行交互。这些程序需要在每台计算机上单独安装,并且可能依赖特定版本的操作系统或软件库。由于每个程序都是独立运行的,因此在不同的计算机上或迁移到其他计算机时,可能需要重新安装和配置程序。 相比之下,Docker是一种容器化技术,提供了一种轻量级、可移植的解决方案,可以在不同的操作系统上运行,包括Linux。Docker通过将应用程序及其依赖项打包在一个容器中,从而实现了应用程序的可移植性和可重复性。每个容器都是独立运行的,并且与所在操作系统隔离。这意味着无论在哪个Linux发行版上运行Docker容器,应用程序都可以以相同的方式运行,并且不受主机操作系统版本的影响。 因此,传统的Windows桌面程序和Docker在一定程度上是不同的。Windows桌面程序更适合在Windows环境中运行,依赖于特定的操作系统和库。而Docker容器可以在不同的操作系统上运行,其中包括Linux,提供了更大的灵活性和可移植性。Docker将应用程序及其依赖项打包在一个容器中,使其更容易部署和管理,并提供了更好的扩展性和资源利用率。总的来说,Docker在Linux上的应用更为广泛,并逐渐被认可为一种先进的应用分发和部署方式。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值