Нужно из программы запустить редактор с аргументами. Код (без обработки ошибок) такой:
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
в интерактивном режиме?