錯誤 是標準C語言庫的頭文件(標頭.h),其中定義了宏以顯示錯誤。 那些了解C的人會知道它,並且會知道在屏幕上顯示系統產生的錯誤代碼以及與該錯誤相關的描述的有用性。
errno變量告訴我們是否有任何系統調用失敗(系統調用)。 例如:
#include <stdio.h&>
#include <fcntl.h&>
#include <stdlib.h>
#include <string.h>
#include <errno.h> //Cabeceras de bibliotecas includes en el programa
const char *NOM_FICHERO= “/tmp/ejemplo.txt”; //Supuesto fichero que no existe
int main (int argc, char **argv)
{
int fd = 0;
printf(“Abriendo %s…\n”, NOM_FICHERO);
fd = open(NOM_FICHERO, O_RDONLY, 0644);
if (fd<0) {
perror(“Error abriendo fichero”); //Nos muestra los mensajes de error
printf(“Error abriendo fichero: %s\n”, strerror(errno));
}
return EXIT_SUCCESS;
}
事實是errno.h只是介紹我現在寫的以下段落的藉口。 許多人會記得 SCO與Linux,自上合組織公司以來,由於 Unix許可證,他們針對IBM,Novell等展開了一次討伐,指責他們已將Unix代碼轉移到Linux內核。
SCO於19年2003月XNUMX日向某些公司發出通知,聲稱errno.h文件是從Unix逐字複製的,未經適當授權就可以在Linux上使用。 相同 Linus Torvalds的 否認了這一點,並表示他自己重寫了errno.h的Linux版本的代碼。
不管是真的,SCO一次又一次地敗訴法院,最終以支持Linux的公司結案。 據SCO稱,所涉及的公司是罪犯,他們已經轉移了部分Unix代碼(特別是部分Unix代碼)。 AT&T Unix系統V)到Linux。
對這些攻擊既好奇又可疑,尤其是考慮到 Microsoft微軟 自從微軟將其操作系統Xenix(Microsoft許可的Unix版本)授予SCO以來,它一直是SCO 25%的所有者,並且協議中包括購買股份。 實際上,兩家公司之間截獲的電子郵件提醒微軟注意Linux的巨大潛力及其帶來的威脅。