2014-08-31 5 views
0

В названии говорится, что все друзья!Предоставление аргументов командной строки исполняемому файлу с использованием ltrace/strace

Как передать аргументы командной строки исполняемому файлу, выполнение которого я хочу контролировать с помощью ltrace/strace?

Например, если исполняемый файл является «a.out», и я хочу сохранить вывод ltrace в файле «out.txt», а «arg1» - это аргумент командной строки, который я хочу передать в исполняемый файл, тогда команда, которую я пробовал, это «ltrace ./a.out -o arg1 out.txt»

Проблема в том, что моя программа предназначена для работы только для одного аргумента командной строки, поэтому, когда я запускаю указанную выше команду, моя программа интерпретирует это как несколько аргументов командной строки и прекращает выполнение после печати сообщения «Использование» (оно действительно предназначено для этого, но здесь я хочу контролировать вызовы библиотеки, которые он создает).

Может кто-то, пожалуйста, помогите мне? Заранее спасибо. :)

ответ

4

Попробуйте прохождение -o перед командой для выполнения:

ltrace -o out.txt ./a.out arg1 

Этот путь ltrace получит -o out.txt и затем EXEC a.out, передавая ему оставшуюся часть командной строки.

+0

Большое спасибо! Это сделал трюк. Не могу поверить, что я не пробовал это сам :) – Iceflame007

+0

Прохладный. Кроме того, для раздражающих командной строки вы также можете посмотреть в '--' (поиск по [" unix double dash "] (http://www.gnu.org/software/libc/manual/html_node/Argument-Syntax. html)), хотя в этом случае вам это не нужно. – cnicutar