c語言dos編程
1、打開開始,運行cmd,進入dos界面。
❷ linux環境下的C語言編程和WINDOS下的有什麼不同
對系統有依賴的函數的調用方式不同。
對系統修改的自由度不同。(linux中更自由)
編程環境的易用性不同。(windows中的IDE更易用)
對程序員功底的要求不同。(linux要寬培求更高)
僅就C語言編程而言差悄,如果遵循ANSI
C標准,那麼二者在代碼編寫上沒有區別。
如果說到「賺錢」,當然是WINDOWS中更好,因為LINUX是開源的,崇尚自由傳播,所以LINUX中的"商業軟體"極少,大多數可以免費獲得。虛巧渣
❸ C語言如何用dos命令編譯運行
在控制台編譯運行一個C程序,在windows上的c語言編譯器為cl.exe,在linux平台上的c語言編譯器是gcc。
在命令提示符中,執行cl test.c(test.c是c語言源碼文件)。下圖是用cl編譯器編譯main.cxx的誰的,並且執行生成的程序main.exe。
❹ 怎樣用C語言編寫一個DOS下的中斷服務程序
DOS中斷中斷屬於匯編層面的內容,可以用asm內聯實現:
在windows visual c++下用__asm關鍵字。
在gcc下用__asm__宏即可。
示例(vc):
#include<stdio.h>
intmain()
{
__asmint3h;
return0;
}
這樣就可以在C裡面寫入匯編代碼了。
__asm關鍵字用於調用內聯匯編程序,並且可在 C 或 C++ 語句合法時出現。它不能單獨出現。必須後跟匯編指令、一組在大括弧中的命令、或者至少一對空大括弧。術語 「__asm塊」在此處指任何命令或命令組,不管是否在大括弧內。
如果不與大括弧一起使用,則__asm關鍵字表示此行的其餘部分是一條匯編語言語句。如果與大括弧一起使用,則該關鍵字表示大括弧之間的每一行都是一條匯編語言語句。為了與早期版本兼容,_asm是__asm的同義詞。
由於__asm關鍵字是語句分隔符,因此您可以將程序集指令放在同一行中。
在 Visual C++ 2005 之前,指令
__asm int 3
不會導致在使用/clr編譯時生成本機代碼;編譯器會將該指令轉換為 CLR 中斷指令。
__asm int 3現在將導致為函數生成本機代碼。如果您希望函數導致代碼中出現斷點,還希望將函數編譯為 MSIL,請使用__debugbreak。
❺ 在Linux下用C語言編程
4。守護進程的創建
如果你在DOS時代編寫過程序,那麼你也許知道在DOS下為了編寫一個常駐內存的程序我們要編寫多少代碼了.相反如果在Linux下編寫一個"常駐內存"的程序卻是很容易的.我們只要幾行代碼就可以做到. 實際上由於Linux是多任務操作系統,我們就是不編寫代碼也可以把一個程序放到後台去執行的.我們只要在命令後面加上&符號SHELL就會把我們的程序放到後台去運行的. 這里我們"開發"一個後台檢查郵件的程序.這個程序每個一個指定的時間回去檢查我們的郵箱,如果發現我們有郵件了,會不斷的報警(通過機箱上的小喇叭來發出聲音). 後面有這個函數的加強版本加強版本
後台進程的創建思想: 首先父進程創建一個子進程.然後子進程殺死父進程(是不是很無情?). 信號處理所有的工作由子進程來處理.
#include
#include
#include
#include
#include
#include
#include
/* Linux 的默任個人的郵箱地址是 /var/spool/mail/用戶的登錄名 */
#define MAIL "/var/spool/mail/hoyt"
/* 睡眠10秒鍾 */
#define SLEEP_TIME 10
main(void)
{
pid_t child;
if((child=fork())==-1)
{
printf("Fork Error:%s\n",strerror(errno));
exit(1);
}
else if(child>0)
while(1);
if(kill(getppid(),SIGTERM)==-1)
{
printf("Kill Parent Error:%s\n",strerror(errno));
exit(1);
}
{
int mailfd;
while(1)
{
if((mailfd=open(MAIL,O_RDONLY))!=-1)
{
fprintf(stderr,"%s","\007");
close(mailfd);
}
sleep(SLEEP_TIME);
}
}
}
你可以在默認的路徑下創建你的郵箱文件,然後測試一下這個程序.當然這個程序還有很多地方要改善的.我們後面會對這個小程序改善的,再看我的改善之前你可以嘗試自己改善一下.比如讓用戶指定郵相的路徑和睡眠時間等等.相信自己可以做到的.動手吧,勇敢的探險者.
好了進程一節的內容我們就先學到這里了.進程是一個非常重要的概念,許多的程序都會用子進程.創建一個子進程是每一個程序員的基本要求!
❻ c語言和DOS有關系嗎
c語言與DOS系統是完全沒有關系的。因為c語言是高級編程語言,而DOS是操作系統,2者是不同領域的東西。
C語言是一門通用計算機編程語言,應用廣泛。C語言的設計目標是提供一種能以簡易的方式編譯、處理低級存儲器、產生少量的機器碼以及不需要任何運行環境支持便能運行的編程語言。
DOS是英文Disk Operating System的縮寫,意思是「磁碟操作系統」,顧名思義,DOS主要是一種面向磁碟的系統軟體,說得簡單些,DOS就是人給機器下達命令的集合,是存儲在機器硬體里頭的一些命令集,有了DOS,我們就可以更容易理解怎麼給機器下命令,不必去深入了解機器的硬體結構,也不必去死記硬背那些枯燥2進制數字的機器命令,只需通過一些接近於英語的DOS命令,我們就可以輕松地完成絕大多數的日常操作。另外,DOS還能有效地管理在它控制下的各種軟硬體資源,對它們進行合理的調度,所有的軟體和硬體都在DOS的監控和管理之下,有條不紊地進行著運轉。