#c
#c
Вопрос:
Я хотел бы сделать следующее в программе на «c».
Мне нужно получить данные об использовании диска в следующем каталоге, и я должен иметь возможность прочитать их в переменной.
du -sb /home/mann | awk '{print$1}'
Я хотел бы выполнить вышеуказанное в программе C и скопировать выходные данные в переменную. Мне нужно сделать это только для этого каталога, а не для «/» или «/home».
Комментарии:
1. Звучит как домашнее задание по системному программированию.
2. Чтобы получить правильные ответы, вам придется уточнить свой вопрос. Вы сказали, что не можете использовать
system
(и, предположительно, также не popen / pclose), поэтому звучит так, как будто вы не хотите запускатьdu
в программе C, а скорее написать что-то самостоятельно, что делает то, что она делает? Есть ли у вас другие ограничения? Есть идеи для начала?
Ответ №1:
- Передайте выходные данные вашей команды в файл на диске. Запустите вашу команду, используя system
- Прочитайте файл, используя стандартные функции C
- Обновите свою переменную
Другой вариант — использовать popen / pclose для запуска вашей команды. Это вернет файловый дескриптор, из которого вы можете читать.
Еще одним вариантом является поиск в вашей системе любой библиотечной функции, которая предоставляет нужную вам информацию
Комментарии:
1. Мне нужно сделать это внутри кода C. Как мне это сделать? Я не могу использовать «системный» вызов.