системные вызовы в C - PullRequest
0 голосов
/ 18 мая 2011

У меня есть функция в C, которая вызывает другое программное обеспечение для выполнения и создания файла, а затем манипулирует данными, например,

void main()
{
function();
//manipulate data in output.txt
}    
void execute()
{
system("./test input.txt output.txt");
}

по какой-то причине файл output.txt не создается полностью ... как работает системный вызов? выполнит возврат к основному до завершения системного вызова? если да, как я могу решить это? Я работаю над Ubuntu с помощью GCC

1 Ответ

6 голосов
/ 18 мая 2011
  1. Проверьте результат работы системы () ВСЕГДА. Убедитесь, что он выполнен успешно (т. Е. Возвращает 0 или все, что является успешным результатом для 'теста')
  2. Когда система запускается, она запускается через / bin / sh (в любом случае в unix / linux). Однако, так как вы указываете его с помощью «./test», убедитесь, что вы работаете в рабочем каталоге, который, как вы думаете, вы есть. Сложные системы (и плохо спроектированные) меняют каталоги, как нижнее белье.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...