Что такое системный вызов в Windows, написанный на c? - PullRequest
2 голосов
/ 12 марта 2011

Что такое системный вызов в windows, написанный на c?Не могу найти объяснение, что это такое в Google.

Это то, что нас просят сделать: Ваше задание - реализовать утилиту Windows с именем HeadTail, которая получает имя файла и целое число N в качестве параметров, и выводитна консоль (стандартный вывод) N первых строк файла, за которыми следуют N обратных строк.

Ответы [ 2 ]

5 голосов
/ 12 марта 2011

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

В вычислениях системный вызов - это то, как программа запрашивает службу у ядра операционной системы, которую она обычно не имеет разрешения на запуск. Системные вызовы обеспечивают интерфейс между процессом и операционной системой. Для большинства операций, взаимодействующих с системой, требуются разрешения, недоступные для процесса пользовательского уровня, например, Ввод / вывод, выполняемый с устройством, присутствующим в системе, или любая форма связи с другими процессами, требует использования системных вызовов.

Например, fopen - это не системный вызов, а ReadFile - это.

или больше информации на Системный вызов или вызов функции

4 голосов
/ 12 марта 2011

Все основные API-интерфейсы Windows, экспортируемые из kernel32.dll и advapi32.dll, обычно считаются системными вызовами (есть и другие, и есть API более низкого уровня, но это, вероятно, будет соответствовать вашим требованиям (API более низкого уровня недокументированы и намного сложнее) использовать)).

Чтобы использовать их в приложении C, если вы используете Visual Studio или среду сборки Windows SDK, вам просто нужно добавить:

#include <windows.h>

в ваш исходный файл. Затем вы можете сделать любой из вызовов API из вашей программы на C.

Возможно, вам придется добавить kernel32.lib при компоновке вашего приложения.

...