c - Linux 的 dos.h?

标签 c linux header-files

我有一个 C 程序,其中包含 #include <dos.h> header 。它显示编译时错误。我知道 dos.h头文件在 Linux 中无效。

dos.h 是否有其他等效的 header ?在 Linux 中?

最佳答案

Linux 是一个类似 Posix/Unix 的系统,因此您应该学习可以使用的系统调用和设施。阅读 advanced unix programming书(或类似的书;AUP 被认为是一本非常好的书)。您还可以阅读 advanced linux programming (即使在线,副本也是 here )。所以 Linux 没有 dos.h header 。

你也可以输入 man 2 intro 来获得 intro到系统调用,它们的列表在 syscalls(2) 中手册页。从应用程序的角度来看 syscallselementary operationsLinux kernel 提供.

GNU libc提供大量功能(例如标准 C 函数,如 mallocfprintf,以及系统函数,如 fgetpwent 以查询用户数据库等...)在系统调用之上。几乎每个 Linux 程序都使用它。

如果您关心应该在其他类似系统(例如 MacOSX 或 FreeBSD)上可移植运行(重新编译后)的编码内容,请考虑遵循 Posix标准。

如果您想编写终端屏幕应用程序,请考虑使用 ncurses .

如果您关心图形界面,请使用 graphical toolkit喜欢QtGtk ;他们通常与 X11 互动服务器(Qt 和 Gtk 都可以在其他一些非 Posix 系统上运行,例如 Windows,通过提供一个通用的图形抽象层。)。 Gtk 和 Qt 都在系统功能和设施之上(特别是在 pthreads 标准线程库之上)添加了一个抽象层(分别是 Glib 和 QCore)。

最后,Linux 是free software ;因此,查看您正在使用的(库或实用程序的)源代码可能会很有趣。您甚至可以改进它并为它做出贡献。

在所有这些方面,Linux 编程与 Windows 或 DOS 有很大不同。

不要试图将每个 Windows 或 Dos 函数模仿到 Linux 中(例如,不要询问每个 dos.h 函数的等效项);学习 Posix/Unix 的思维和编码方式。

time(7)手册页告诉你很多关于 Linux 上的时间(关于它的各种含义和功能)。

不要忘记使用 gcc -Wall -Wextra 向编译器询问警告;作为一般规则,改进您的源代码,直到您没有收到警告。

dos.h 不能在 Linux 中完全等效,因为 Linux(即 Unix 或 Posix 规范)和 Windows 是具有不同特性和概念的系统。然而,一些免费的库(我提到了 Glib 和 QCore)正在提供适合 Linux 和 Windows 的通用抽象,所以如果你想开发可移植到 Windows 和 Linux 的软件,我建议改用这些库(在 Windows 和Linux)。

(我还怀疑微软会使用基于专利或版权的法律威胁来避免免费克隆他们专有的 dos.h,因为他们的垄断声誉和他们对标准的厌恶和免费软件;我承认我对微软有强烈的看法。)

关于c - Linux 的 dos.h?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11681545/

相关文章:

c - 为什么要为一个 POSIX 函数包含多个 header ?

c++ - 处理 header 中令人痛苦的长命名空间名称

c++ - 使用 C++ API 开发 Google Pepper 可信插件时如何设置链接器标志

c - C歧义中的选择排序

c - 结构声明与定义

c - 使用C打印服务器IP地址

java - websphere 的 OS 用户创建文件夹和写入文件需要什么 Linux 权限?

c - 如何在 Ubuntu 中查找默认代理设置

linux - apache mod_rewrite mod_proxy 子域到目录

不能使用头文件中定义的函数