В настоящее время я пишу программу на C, и одно из ограничений заключается в том, что я не могу вызывать внешние программы, используя system
. Вместо этого мне нужно работать в пределах идиомы языка, используя системные вызовы из библиотеки C/C++. У меня возникают проблемы с пониманием разницы между «системными» вызовами и вызовами «C/C++ system».Системные вызовы с системными вызовами C/C++
Is system
просто зависит от платформы, в то время как вызовы системы «C» строят ontop system
и автоматически изменяет его выполнение на основе используемой платформы?
Надеюсь, мой вопрос ясен. Заранее спасибо!
Не могли бы вы привести пример внешней программы, которую вы хотите вызвать? –
Вы имеете в виду 'fread' и' fopen' или, скорее, 'open' и' read'? – Downvoter
Да, 'system' просто порождает команду оболочки, чтобы запустить любую двоичную (или встроенную оболочку), о которой вы просите. Системный вызов - это вызов «функции» ядра, функция, что ядро является единственным, способным выполнять (то есть «действительно» доступ к аппаратным средствам). Конечно, программа, созданная 'system', может/будет использовать системные вызовы. Я предполагаю, что цель состоит в том, чтобы заставить вас сделать все это, не полагаясь на существующий бинарный файл, который сделает это за вас. – hexasoft