И это всё МОЁ

Нужно из программы запустить редактор с аргументами. Код (без обработки ошибок) такой:


if ((editor_pid = fork ()) == 0) {
editor = getenv ("EDITOR";);
editor = strdup (editor);
execlp (editor, editor, file_name, (char*)0);
}
waitpid (editor_pid, &editor_status, 0);


Проблема: некоторые редакторы (проверил nano и vi) отказываются выполняться, потому что запущены не в интерактивном режиме, выдавая следующие ошибки:


vi:


[Using open mode]

Open and visual must be used interactively


nano:


Too many errors from stdin


Самое досадное то, что мой привычный vis работает нормально.


Так вот, собственно, как запустить editor в интерактивном режиме?









 , , , ,