Я тут в FreeBSD перевел программку в фоновый режим — daemon — и наблюдаю непонятное явление.
Пока это было просто консольное приложение я выводил на экран функцией printf:
printf("Bla bla bla\n");
Теперь приходится открывать system console — /dev/console — и писать туда.
fCon = fopen("/dev/console", "w");
fprintf(fCon, "Bla bla bla\n");
Этот вывод идет на терминал ttyv0. Если при этом я logged in на этом терминале то все нормально. Но если я даю команду exit, дальше вывод на этот экран идет без возврата каретки, ступеньками.
Я могу, конечно, добавить возврат каретки явно:
fprintf(fCon, "Bla bla bla\r\n");
Но, вроде, везде говорят что в UNIX это не нужно. В чем дело, где об этом можно почитать?
-
Здравствуйте, kov_serg, Вы писали:
_>Может стоит попробывать "wb" вместо "w"
Попробовать, конечно, можно, но хотелось бы понять что происходит.
К тому же:
https://man.freebsd.org/cgi/man.cgi?query=fopen&apropos=0&sektion=3&manpath=FreeBSD+15.0-RELEASE+and+Ports.quarterly&format=html
The mode string can also include the letter "b" after either the "+" or the first letter. This is strictly for compatibility with ISO/IEC 9899:1990 ("ISO C90") and has effect only for fmemopen(); otherwise "b" is ignored.
-