2012-04-17 3 views
5

Можно ли вызвать системные вызовы os, такие как open, close etc из сценария оболочки? Я попробовал поиск по Google, но мне не удалось использовать команду system(). Может ли кто-нибудь помочь в этом?Системные вызовы системы из сценария bash

+1

Почему бы просто не использовать обычные механизмы для работы с файлами? –

ответ

5

Многие системные вызовы доступны, но только через собственные механизмы оболочки, а не могут напрямую указывать точные параметры. Например:

exec 4>outfile 

звонки:

open("outfile", O_WRONLY|O_CREAT|O_APPEND, 0666) = 3 
dup2(3, 4) 

3 заменяется на следующий доступный дескриптор) и

exec 4<&- 

звонки:

close(4) 

Некоторые снаряды , таких как ba sh, позволяют добавлять дополнительные встроенные модули через загружаемые модули (см. встроенный модуль enable, используемый для загрузки таких модулей); если вы действительно необходимая функциональность не предоставляется вверх по течению, вы можете реализовать ее таким образом.

Смежные вопросы