Форум программистов, компьютерный форум CyberForum.ru

Cоздать программу, записывающую ошибку в stderr c помощью exit() - C++

Восстановить пароль Регистрация
 
танкист34
-62 / 0 / 0
Регистрация: 15.03.2013
Сообщений: 328
20.01.2014, 16:26     Cоздать программу, записывающую ошибку в stderr c помощью exit() #1
создать программу, записывающую ошибку в stderr c помощью exit(). Спасибо
C++
1
2
std::cerr << "траля ля"; //не подойдёт
//причина: такой способ и в std::cout пишет сообщение
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.01.2014, 16:26     Cоздать программу, записывающую ошибку в stderr c помощью exit()
Посмотрите здесь:

C++ написать прогу на с считывающую с клавы строку символов и записывающую ее в файл
Cоздать программу шифрования и дешифрования C++
C++ Помогите найти ошибку в программе(нахождение периметра с помощью функции)
C++ Найти ошибку (Вычисление функции с помощью разложения в ряд)
Cоздать программу, которая бы принимала числа из файла выбирала из них нечетные и заносила бы в другой файл C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
20.01.2014, 16:28     Cоздать программу, записывающую ошибку в stderr c помощью exit() #2
танкист34, С помощью exit невозможно.
танкист34
-62 / 0 / 0
Регистрация: 15.03.2013
Сообщений: 328
20.01.2014, 16:30  [ТС]     Cоздать программу, записывающую ошибку в stderr c помощью exit() #3
Цитата Сообщение от ForEveR Посмотреть сообщение
танкист34, С помощью exit невозможно.
а можете сказать почему когда в std::cerr пишешь что нить, то эти данные можно вытащить через стандартный поток вывода?
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
20.01.2014, 16:34     Cоздать программу, записывающую ошибку в stderr c помощью exit() #4
танкист34, Это как еще интересно? Все зависит от того, куда направлен stderr. По-дефолту stderr пишет в стандартный поток ошибок, а stdout пишет в стандарный поток вывода. http://ru.wikipedia.org/wiki/%D0%A1%...BE%D0%BA%D0%B8
C++
1
2
3
4
5
6
7
8
9
10
11
#include <iostream>
#include <fstream>
 
int main()
{
   std::ifstream ifs("/dev/null");
   std::streambuf* old_cerr = std::cerr.rdbuf();
   std::cerr.rdbuf(ifs.rdbuf());
   std::cerr << "null" << std::endl;
   std::cerr.rdbuf(old_cerr);
}
Вытащите-ка.
Байт
 Аватар для Байт
13951 / 8782 / 1221
Регистрация: 24.12.2010
Сообщений: 15,891
20.01.2014, 16:57     Cоздать программу, записывающую ошибку в stderr c помощью exit() #5
Цитата Сообщение от танкист34 Посмотреть сообщение
а можете сказать почему когда в std::cerr пишешь что нить, то эти данные можно вытащить через стандартный поток вывода?
Потому что cerr и cout по умолчанию направлены в одно место, на консоль. Если хотите разделить их, запускайте программы так:
proga.exe >out.txt 2>err.txt
танкист34
-62 / 0 / 0
Регистрация: 15.03.2013
Сообщений: 328
20.01.2014, 16:57  [ТС]     Cоздать программу, записывающую ошибку в stderr c помощью exit() #6
Цитата Сообщение от ForEveR Посмотреть сообщение
танкист34, Это как еще интересно? Все зависит от того, куда направлен stderr. По-дефолту stderr пишет в стандартный поток ошибок, а stdout пишет в стандарный поток вывода. http://ru.wikipedia.org/wiki/%D0%A1%...BE%D0%BA%D0%B8
C++
1
2
3
4
5
6
7
8
9
10
11
#include <iostream>
#include <fstream>
 
int main()
{
   std::ifstream ifs("/dev/null");
   std::streambuf* old_cerr = std::cerr.rdbuf();
   std::cerr.rdbuf(ifs.rdbuf());
   std::cerr << "null" << std::endl;
   std::cerr.rdbuf(old_cerr);
}
Вытащите-ка.
я про код который в заголовке, с него вытаскивается и прога зависает, а с вашего не вытаскивается и тоже зависает
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
20.01.2014, 17:07     Cоздать программу, записывающую ошибку в stderr c помощью exit() #7
танкист34, Что значит "зависает"? Здесь нечему зависать.
Убежденный
Системный программист
 Аватар для Убежденный
14175 / 6190 / 982
Регистрация: 02.05.2013
Сообщений: 10,298
Завершенные тесты: 1
20.01.2014, 22:28     Cоздать программу, записывающую ошибку в stderr c помощью exit() #8
Цитата Сообщение от танкист34 Посмотреть сообщение
создать программу, записывающую ошибку в stderr c помощью exit().
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
#include <stdlib.h>
 
 
 
void my_callback()
{
    std::cout << "Hello!" << std::endl;
}
 
 
 
int main()
{
    atexit(my_callback);
    exit(0);
    return 0;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.01.2014, 23:31     Cоздать программу, записывающую ошибку в stderr c помощью exit()
Еще ссылки по теме:

C++ Помогите найти ошибку в коде. Функция exit
Cоздать программу тестирования C++
Компилятор выдает ошибку: [Error] ld returned 1 exit status C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Tulosba
:)
Эксперт C++
4378 / 3221 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
20.01.2014, 23:31     Cоздать программу, записывающую ошибку в stderr c помощью exit() #9
Убежденный, хорошая попытка. Но колбэк сработает и без явного вызова exit(). И всё же стоит заменить std::cout на std::cerr.
Yandex
Объявления
20.01.2014, 23:31     Cоздать программу, записывающую ошибку в stderr c помощью exit()
Ответ Создать тему
Опции темы

Текущее время: 05:38. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru