Как правильно использовать STDERR_FILENO?

#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 за ваш четкий ответ).