2011-03-12 78 views
2

什麼是用c編寫的windows系統調用? 無法找到它在Google中的解釋。用c編寫的窗口中的系統調用是什麼?

這就是我們被要求做的事: 你的任務是執行命名HeadTail Windows實用程序,接收一個文件名和一個整數n作爲其參數,並輸出到控制檯(標準輸出)N的第一線文件後面跟着N個倒行的最後一行。

+0

這是一個功課題嗎?如果是這樣,請添加作業標籤。 –

+0

它不是,我被要求用系統調用寫一些東西,但我不知道它們是什麼。 – Vadiklk

+0

您可能想要發佈您被要求寫的內容,以便人們更清楚地知道您想要做什麼。 – jonmorgan

回答

5

http://en.wikipedia.org/wiki/System_call

在計算中,系統調用是一個程序如何請求從操作系統的內核中的服務,它通常不會擁有運行權限。系統調用提供進程和操作系統之間的接口。與系統交互的大多數操作都需要權限不可用於用戶級過程,例如,使用系統上存在的設備執行I/O,或與其他進程進行任何形式的通信都需要使用系統調用。

例如fopen不是系統調用,而ReadFile是。

或者在System call vs Function call

+0

你能解釋一下關於如何在c中使用它嗎? – Vadiklk

+0

@Vadiklk:從'ntdll.dll'導入一些函數並調用它們。 –

+0

你能舉幾個例子嗎? – Vadiklk

4

所有的KERNEL32.DLL和ADVAPI32.DLL出口核心的Windows API的更多信息通常被認爲是系統調用(還有其他和有較低級別的API,但是這可能會滿足您的要求(較低級別的API沒有文檔,使用起來也很困難))。

要在C應用程序,使用他們,如果你正在使用的Visual Studio或Windows SDK構建環境,你只需要添加:

#include <windows.h> 

到您的源文件。然後,您可以從C程序中進行任何API調用。

在鏈接應用程序時,您可能需要添加kernel32.lib。

+0

+1我喜歡。 * kernel32.dll和advapi32.dll通常被認爲是系統調用*非常容易。 – Benjamin

相關問題