dos.h for Linux?

Tam*_*miL 5 c linux header-files

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

dos.h在Linux中是否还有其他等效标头?

McL*_*ive 8

dos.h头文件是DOS操作系统的接口.它们不能移植到DOS以外的操作系统(不适用于Linux).你将使用dos.h中的哪些功能?


Bas*_*tch 8

Linux是一个类似Posix/Unix的系统,因此您应该学习可以使用的系统调用和设施.阅读高级的unix编程书(或一些等价的; AUP被认为是一本非常好的书).您还可以阅读高级Linux编程(甚至在线,副本在这里).所以Linux没有dos.h标题.

您还可以键入man 2 intro以获取系统调用的介绍,以及他们在syscalls(2)手册页中的列表.从应用程序的角度来看,系统调用Linux内核提供的基本操作.

GNU libc中提供了很大的许多功能(如标准ç功能,如mallocfprintf,以及系统的功能,如fgetpwent查询用户数据库,等等...)以上的系统调用.几乎每个Linux程序都使用它.

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

如果要编写终端屏幕应用程序代码,请考虑使用ncurses.

如果您关心图形界面,请使用QtGtk图形工具包 ; 它们通常与X11服务器交互(通过提供通用的图形抽象层,Qt和Gtk都可以在其他非Posix系统上运行,例如Windows.).Gtk和Qt都在系统函数和工具之上添加了一个抽象层(分别是Glib和QCore)(特别是在pthreads标准线程库之上).

最后,Linux是免费软件 ; 所以你可能会觉得有趣的是查看你正在使用的源代码(库或实用程序).你甚至可以改进它并做出贡献.

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

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

时间(7)手册页告诉你很多关于Linux上的时间(它不同的含义和功能).

不要忘记向编译器发出警告gcc -Wall -Wextra; 作为一般规则,改进您的源代码,直到您没有警告.

dos.h由于Linux(即Unix或Posix规范)和Windows是具有不同功能和概念的系统,因此无法确切地使用Linux .然而,一些免费的库(我提到Glib和QCore)提供了适用于Linux和Windows的常见抽象,所以如果你想开发可移植到Windows和Linux的软件,我建议使用这些库(在Windows和Windows上使用它们) Linux的).

(我还怀疑微软将使用合法威胁 - 专利或版权 - 来避免其专有的免费克隆dos.h,因为他们的垄断声誉和他们对标准和自由软件的厌恶;我承认我对微软有强烈意见......)