软件开发 – 在 FreeDOS 上如何使用 C 语言编程(free c语言用法)

软件开发 - 在 FreeDOS 上如何使用 C 语言编程(free c语言用法)

FreeDOS 上使用 C 语言编程与在 Linux 上使用 C 语言编程非常类似。

当我第一次开始使用 DOS 时,我喜欢 DOS 自带的 BASIC 来编写游戏和其它一些有趣的程序。很长时间后,我才学习 C 编程语言。

我马上爱上了使用 C 语言做开发!它是一种简单易懂的编程语言,在编写有用的程序时,这给予我很大的灵活性。实际上,很多 FreeDOS 的核心实用程序都是使用 C 语言和汇编语言编写的。

因此,FreeDOS 的 1.3 RC4 包含一个 C 语言可能并不出人意料,此外还有其它编程语言的编译器。FreeDOS 的 1.3 RC4 LiveCD 包含两个 C 编译器:Bruce\’s C 编译器(一个简单的 C 编译器)和 OpenWatcom C 编译器 。在 Bonus CD 上,你也可以找到 DJGPP(一款基于 GNU 的 GCC 的 32 位 C 编译器)和 GCC 的 IA-16 移植(需要 386 或更好的 CPU 来编译,但是,生成的程序可以在低端系统上运行)。

在 FreeDOS 上使用 C 语言编程与在 Linux 上使用 C 语言编程非常类似,但是有两个例外:

  1. 你需要知道你使用了多少内存。Linux 允许程序使用很多内存,但是 FreeDOS 有很多限制。DOS 程序只使用四种内存模式(大、中、紧凑和小)中的其中一种,具体取决于它们需要多少内存。
  2. 你可以直接访问控制台终端。在 Linux 上,你可以创建文本模式的程序,使用一个诸如 ncurses 之类的库来绘制终端屏幕。但是,DOS 允许程序访问控制台终端和视频硬件。这为编写更有趣的程序提供了极大的灵活性。

我喜欢在 GCC 的 IA-16 移植或 OpenWatcom 中编写我的 C 程序,具体取决于我正在编写的是哪种程序。OpenWatcom C 编译器更容易安装,因为它只是个单一的软件包。这就是为什么我们在 FreeDOS 的 LiveCD 中提供 OpenWatcom 的原因, 在你安装 FreeDOS 的 1.3 RC4 时,如果你选择 “完全的安装(包括安装应用程序和游戏)Full installation including applications and games”,那么你也自动地安装 OpenWatcom。如果你选择安装 “纯 DOS 系统Plain DOS system”,那么,你将需要使用 FDIMPLES 软件包管理器来安装 OpenWatcom C 编译器。

软件开发 - 在 FreeDOS 上如何使用 C 语言编程(free c语言用法)

在 FreeDOS 1.3 RC4 上安装 OpenWatcom

在 DOS 上使用 C 语言编程

你可以在 OpenWatcom 项目网站找到文档和库指南,以学习 OpenWatcom C 编译器所提供的独特的关于 DOS 的 C 语言编程库。简单描述几个最有用的函数:

来自 conio.h头文件:

  • int getch(void):从键盘上获取一个按下的单个按键
  • int getche(void):从键盘上获取一个按下的单个按键,并回显该按键

来自 graph.h头文件:

  • _settextcolor(short color):设置打印文本时的颜色
  • _setbkcolor(short color):设置打印文本时的背景颜色
  • _settextposition(short y, short x):移动光标到行y和 列x
  • _outtext(char _FAR *string):从当前光标位置开始,直接将一串字符打印到屏幕

DOS 只支持 16 种文本颜色和 8 种背景颜色。你可以使用值 0(黑色)到 15(亮白色)来具体指定文本颜色,以及使用值 0(黑色)到 7(白色)来具体指定背景颜色:

  • 0:黑色
  • 1:蓝色
  • 2:绿色
  • 3:品蓝色
  • 4:红色
  • 5:品红色
  • 6:棕色
  • 7:白色
  • 8:亮黑色
  • 9:亮蓝色
  • 10:亮绿色
  • 11:亮品蓝色
  • 12:亮红色
  • 13:亮品红色
  • 14:黄色
  • 15:亮白色

一个花哨的 “Hello World” 程序

很多新开发者学习编写的第一个程序是为用户打印 “Hello world” 。我们可以使用 DOS 的 coniographics库来制作一个更有趣的程序,并使用彩虹般的颜色打印 “Hello world” 。

在这个实例中,我们将遍历每种文本颜色,从 0(黑色)到 15(亮白色)。随着我们打印每一行,我们都将为下一行缩进一个空格。在我们完成后,我们将等待用户按下任意按键,然后,我们将重置屏幕并退出。

你可以使用任何文本编辑器来编写你的 C 源文件代码。我喜欢使用一些与众不同的编辑器,如 FreeDOS Edit和Freemacs,但是,我最近一直在使用FED editor,因为它提供语法高亮功能,使其很容易在我的程序源文件代码中看到关键字、字符串(LCCT 译注:C 语言中没有字符串)、变量。

软件开发 - 在 FreeDOS 上如何使用 C 语言编程(free c语言用法)

使用 C 语言编写一个简单的测试程序

在你使用 OpenWatcom 编译前,你将需要设置 DOS 的 环境变量,以便 OpenWatcom 可以找到它的支持文件。OpenWatcom C 编译器软件包中包含了一个为你做这件事的设置批处理文件:DEVELOWOWSETENV.BAT。运行这个批处理文件可以自动为你的 OpenWatcom 设置环境变量。

在你的开发环境准备好后,你可以使用 OpenWatcom 编译器来编译这个 “Hello world” 程序。我已经将我的 C 源文件文件保存为 TEST.C,因此,我可以输入WCL TEST.C来编译和连接该程序为一个名称为TEST.EXE的 DOS 可执行文件。在 OpenWatcom 的输出信息中,你将看到WCL实际上调用 OpenWatcom C 编译器(WCC)来编译,并调用 OpenWatcom 链接器(WLINK)来执行 对象/目标object 链接阶段:

软件开发 - 在 FreeDOS 上如何使用 C 语言编程(free c语言用法)

使用 OpenWatcom 编译测试文件

OpenWatcom 会打印一些无关的输出信息,这可能会使发现错误和警告变得困难。为了告诉编译器来抑制这些大量的额外信息,请在编译时使用 /Q(“Quiet”)选项:

在编译 C 源文件文件时,如果你没有看到任何错误信息,那么你现在就可以运行你的 DOS 程序了。这个 “Hello World” 示例的程序名称是 TEST.EXE。在 DOS 命令行中输入TEST来运行新的程序,你应该会看到这个非常漂亮的输出:

软件开发 - 在 FreeDOS 上如何使用 C 语言编程(free c语言用法)

C 语言是一种非常高效的编程语言,在像 DOS 之类的资源有限的系统上进行编程也可以很好的工作。在 DOS 上,你可以使用 C 语言来做更多的事。如果你是 C 语言的初学者,那么,你可以跟随我们在 FreeDOS 网站上的 《使用 C 语言编写 FreeDOS 程序》 的自学电子书,以及在FreeDOS YouTube 频道上的配套的 入门指南how-to 系列视频,来自主学习 C 语言。

(题图:MJ:Legacy sci-fi computer programming::1.7 celestial::1 edison bulb::1 satellite imagery::1 wooden::1 in high resolution, very detailed, 8k)

via: https://opensource.com/article/21/6/program-c-freedos

作者:Jim Hall选题:lujun9972译者:robsean校对:wxy

本文由 LCTT原创编译,Linux中国荣誉推出

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

(0)
上一篇 2023年5月20日 上午10:48
下一篇 2023年5月20日 上午11:04

相关推荐

  • 卡巴斯基企业版更厉害

    卡巴斯基企业版更厉害 卡巴斯基企业版是一款功能强大的杀毒软件,能够保护计算机免受各种恶意软件和病毒的侵害。与其他杀毒软件相比,卡巴斯基企业版具有更强大的扫描和防御能力,能够更快地发…

    科研百科 2024年12月5日
    0
  • 第八届超级电容器及关键材料

    第八届超级电容器及关键材料 近年来,随着能源需求的增长和环保意识的提高,超级电容器作为一种新型的能源存储方式,受到了越来越多的关注。超级电容器具有高能量密度、长寿命、安全性等优点,…

    科研百科 2024年12月3日
    0
  • 系统集成项目管理网站

    系统集成项目管理网站:助力企业高效集成项目管理 系统集成项目管理网站是一种在线项目管理工具,可以帮助企业高效集成项目管理。通过集成项目管理网站,企业可以实现项目计划、进度管理、资源…

    科研百科 2024年12月12日
    0
  • 食堂管理制度(含食堂采购管理系统)(食堂管理制度与细则)

    1 目的 为了加强公司食堂供餐管理,规范食堂作业流程,加强与监督管理部门的协调、配合,保障员工人身健康和生命安quan,提高食堂综合水平,特制定本制度。 2 范围 本制度适用于公司…

    科研百科 2023年8月7日
    97
  • 抓清理,推动什么

    抓清理,推动绿色发展 近年来,随着中国经济的快速发展,环境污染问题日益突出。为了推动绿色发展,中国政府采取了一系列的措施,包括开展大规模的环保行动,加强环境监测和治理,推进清洁能源…

    科研百科 2024年12月6日
    0
  • 信息项目管理软件

    信息项目管理软件 随着信息技术的飞速发展,信息项目管理软件已经成为项目管理中不可或缺的工具。它们可以帮助项目经理和团队成员更好地管理项目进度、资源、质量和风险,提高项目管理的效率和…

    科研百科 2024年7月27日
    38
  • 青州市谭坊镇创新两新组织党建“四微”工作法

    今年以来,谭坊镇不断推进基层党组织建设,通过党支部示范引领、党员群众积极参与的方式,从力所能及的“小切口”做起,积极开展“微课堂”、搭建“微平台”、创新“微标识”、推出“微典型”,…

    科研百科 2023年1月20日
    121
  • 客户关系管理应用第三版课后答案

    客户关系管理应用第三版课后答案 客户关系管理(CRM)是一种应用,旨在通过收集,存储,分析和利用客户数据来提高企业的销售,营销和服务效率。第三版客户关系管理应用教材提供了许多课后答…

    科研百科 2024年10月10日
    22
  • 健康档案管理系统软件

    健康档案管理系统软件: 数字化管理健康档案的重要性 随着科技的不断发展,数字化管理健康档案已经成为一种趋势。健康档案管理系统软件是一种将健康档案数字化,并通过计算机进行管理和查询的…

    科研百科 2024年9月18日
    16
  • 中冶建工协同办公平台

    中冶建工协同办公平台:助力中冶建工高效协同 中冶建工是一家大型建筑企业和金融机构,拥有丰富的业务和资源。为了提高工作效率和协同能力,中冶建工搭建了协同办公平台,以实现内部各个部门之…

    科研百科 2024年10月8日
    20