#c #unix #macros #system-calls #file-descriptor
#c #unix #макросы #системные вызовы #файловый дескриптор
Вопрос:
Может ли кто-нибудь привести мне пример того, как правильно использовать STDERR_FILENO
из <unistd.h>
файла заголовка?
В основном я хочу научиться записывать сообщения об ошибках в STDERR_FILENO
.
Я использовал STDOUT_FILENO
в прошлом для записи в определенный файл, поэтому мне интересно STDERR_FILENO
.
write(STDOUT_FILENO, buff, buffSize);
Приветствуются любые идеи или краткие примеры.
Заранее спасибо за вашу помощь.
P.S: Я был бы признателен, если бы вы могли опубликовать для меня одну или две строки фактического кода, чтобы увидеть, как его правильно использовать.
Комментарии:
1. Между
STDOUT_FILENO
иSTDERR_FILENO
нет разницы (за исключением базового потока, очевидно). Если вы знаете, как использоватьSTDOUT_FILENO
, вы знаете, как использовать другой.
Ответ №1:
Пример;
char *msg = "This is my message"; /* The actual message*/
int len = strlen(msg); /* the byte length of the string */
write(STDERR_FILENO, msg, len);
Ответ №2:
Вы пробовали write(STDERR_FILENO, buff, buffSize);
?
Почему вы не используете <stdio.h>
?
Комментарии:
1. Да, вы правы. Я не знаю, что должно быть вместо «buff» и «buffSize». Как мое сообщение об ошибке поместится в (буферной) части, а его размер — в (buffSize)? Я не так уверен в этом. Не могли бы вы привести мне небольшой пример в одну или две строки?
2. Но вы действительно должны использовать
<stdio.h>
и узнать оprintf
, если вы такой новичок…3. Я их уже использую. Я просто хотел подтвердить его использование. Спасибо за ваш совет — ( 1 за ваш четкий ответ).