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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
танкист34
-62 / 0 / 0
Регистрация: 15.03.2013
Сообщений: 328
#1

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

20.01.2014, 16:26. Просмотров 364. Ответов 8
Метки нет (Все метки)

создать программу, записывающую ошибку в 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()
Посмотрите здесь:

Помогите найти ошибку в коде. Функция exit - C++
Доброго времени суток! Помогите разобраться, почему в коде(код определяет простое число или нет): #include&lt;iostream&gt; #include...

Компилятор выдает ошибку: [Error] ld returned 1 exit status - C++
#include &lt;iostream&gt; using namespace std; const int Max = 5; int fill_array(double ar, int limit); void show_array(double ar, int...

Написать программу, записывающую в файл и читающую из файла массив из структур - C++
Написать программу, записывающую в файл и читающую из файла массив из структур. Написать следующие функции и организовать их вызов: функцию...

Графика: оздать JPEG или GIF рисунок и программно отредактировать его - C++
Всем привет! Делая проект, столкнулся с несколькими проблемами, в частности: 1) Надо создать нормальный интерфейс на С++ (до этого делал...

Найти ошибку (Вычисление функции с помощью разложения в ряд) - C++
Итак,проблема с разницей в показаниях Задание #include &lt;iostream&gt; #include &lt;conio.h&gt; #include &lt;clocale&gt; #include &lt;cmath&gt;...

оздать класс "измерения" с открытыми данными высота и ширина - C++
Создать класс &quot;измерения&quot; с открытыми данными высота и ширина. С помощью наследования создать четыре класса: 1. прямоугольник - для...

Исправить ошибку в коде, рисующую фрактал Мандельброта с помощью CUDA - C++
uint* d_image_buffer; cudaAssertSuccess(cudaMalloc(&amp;d_image_buffer, WIDTH * HEIGHT)); dim3 block_size(16, 16); dim3...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ForEveR
В астрале
Эксперт С++
7969 / 4731 / 320
Регистрация: 24.06.2010
Сообщений: 10,539
Завершенные тесты: 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
В астрале
Эксперт С++
7969 / 4731 / 320
Регистрация: 24.06.2010
Сообщений: 10,539
Завершенные тесты: 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);
}
Вытащите-ка.
Байт
Эксперт C
15671 / 9998 / 1500
Регистрация: 24.12.2010
Сообщений: 18,783
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
В астрале
Эксперт С++
7969 / 4731 / 320
Регистрация: 24.06.2010
Сообщений: 10,539
Завершенные тесты: 3
20.01.2014, 17:07     Cоздать программу, записывающую ошибку в stderr c помощью exit() #7
танкист34, Что значит "зависает"? Здесь нечему зависать.
Убежденный
Системный программист
Эксперт С++
15247 / 6879 / 1092
Регистрация: 02.05.2013
Сообщений: 11,256
Завершенные тесты: 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++
Изучаю функции, и в одном из упражнения самоучителя надо сделать прогу по нахождению периметра с помощью функций. Вроде делаю все как надо,...

Считывание символа с помощью функции scanf: найти и исправить ошибку в коде - C++
Hello, world! Столкнулся с такой проблемой, как считывание символа с помощью функции scanf. Выкладываю два кода. Один исполняется...

Переделать программу с помощью функций - C++
#include &lt;iostream&gt; #include&lt;fstream&gt; using namespace std; int main() { ifstream f1; f1.open(&quot;dvymernyi_massiv.txt&quot;); if(!f1)...

Написать программу с помощью цикла - C++
Написать программу с помощью цикла: Задание: Вывести на экран таблицу стоимости, например, яблок в диапазоне от N г до M кг с шагом 100...

Составить Программу с помощью процедуры функции - C++
Задание такое. С помощью процедуры функции решить слудующую задачу. В библиотеке 10 читателей , каждый читатель в один момент может взять...


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

Или воспользуйтесь поиском по форуму:
Tulosba
:)
Эксперт С++
4392 / 3235 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
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()
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru