тогда я пишу еще один бинарный исполняемый «LIBC» или другие C-ливерри), скажем, его название «MyProg». Я хочу, чтобы он породил «myecho» с использованием функции ядра sys_execve < /em>
и я хочу захватить стандартный выход "MyeCho" в файл "Сообщения.txt" для дальнейшей обработки.
Я не знаю, как сказать, что «MyeCho» перенаправляет свой вывод в файл. < /p>
Код: Выделить всё
myprog program
[.data]
Par1 DB "Param1",0
Par2 DB "Param2",0
Par3 DB ">messages.txt",0
Env1 DB 0 ; Not used.
Command DB "/path/to/myecho",0
Parameters DD Par1,Par2,Par3,0
Environment DD Env1
[.text]
; Execute "myecho" from "myprog":
MOV EAX,11 ; Kernel # of "execve" in 32bit Linux.
MOV EBX,Command ;
MOV ECX,Parameters ;
MOV EDX,Environment ;
INT 0x80
< /code>
Я ожидал, что строка execve'd будет чем -то вроде < /p>
/path/to/myecho Param1 Param2 >messages.txt
< /code>
Но, кажется, не работает так. Оператор перенаправления> Par3 DB "^>messages.txt",0
Par3 DB 27,">messages.txt",0
< /code>
Но без успеха.
Возможно, мне нужно будет породить "myecho" с Fork
вместо Execve
и использовать Tee для трубы, но но Я не знаю, как подключить выходные данные "Myecho" к дескрипторам файлов "tee". его вывод в файл, а затем обработайте этот вывод в «myprog»?
Подробнее здесь: https://stackoverflow.com/questions/794 ... er-program
Мобильная версия