mrrik Гость
|
Добавлено: Пн Окт 28 2002 23:01 Заголовок сообщения: Конфликт CRT и функции exec??? |
|
|
Пишу программу на Free Pascal под Линукс. Проблема сохраняется под Redhat 72,73 and Mandrake 8.0, 8.2. Мне нужно, чтобы выполнялась функция execv или execvp, а также в этой программе должен использоваться модуль CRT. Проблема в том, что если в текст нормально работающей программы(в строку uses) добавить "crt", то возникают следующие проблемы: 1. Во время исполнения функции execvp(exev,execlp, execve...), которая запускает "ls -l", отсутствует перевод строки. Эта проблема сохраняется и после выхода из программы, т. е. сколько enter не жми, системное приглашение появляется не на следующей, а на той же строке. Если просто убрать crt из строки uses, то проблема исчезает: ls -l отображается нормально - каждая директория или файл на своей строчке. 2. После исполнения программы не видно набираемых символов: однако система их воспритимает и даже исполняет, если это команда. Думаю, выкладывать исходники не имеет смысла - я уже долго экспериментировал и убедился, что проблема возникает только и только при одновременном присутствии в программе unit-a CRT и функции execv, или execvp, execlp, execl, execve... Если же в программе вместо uses crt,linux написать uses crt,dos и использовать вместо функций execv, execvp... которые "принадлежат" unit-у linux, и использовать соответствующую unit-у dos функцию exec, то проблема остается, кроме того, что после выхода из программы нету вышеописанных последствий, однако нормального отображения ls -l тоже нету - отсутствует перевод строки в соответствующих местах.
Спасибо. |
|