Tam*_*miL 5 c linux header-files
我有一个包含#include <dos.h>标题的C程序.它显示编译时错误.我知道dos.h头文件在Linux中无效.
dos.h在Linux中是否还有其他等效标头?
Linux是一个类似Posix/Unix的系统,因此您应该学习可以使用的系统调用和设施.阅读高级的unix编程书(或一些等价的; AUP被认为是一本非常好的书).您还可以阅读高级Linux编程(甚至在线,副本在这里).所以Linux没有dos.h标题.
您还可以键入man 2 intro以获取系统调用的介绍,以及他们在syscalls(2)手册页中的列表.从应用程序的角度来看,系统调用是Linux内核提供的基本操作.
在GNU libc中提供了很大的许多功能(如标准ç功能,如malloc和fprintf,以及系统的功能,如fgetpwent查询用户数据库,等等...)以上的系统调用.几乎每个Linux程序都使用它.
如果您关心在其他类似系统(例如MacOSX或FreeBSD)上编码应该可移植(在重新编译之后)的内容,请考虑遵循Posix标准.
如果要编写终端屏幕应用程序代码,请考虑使用ncurses.
如果您关心图形界面,请使用Qt或Gtk等图形工具包 ; 它们通常与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,因为他们的垄断声誉和他们对标准和自由软件的厌恶;我承认我对微软有强烈意见......)