Недавно пришло мне с озона несколько книг. В том числе, две по C++. Обе очень понравились. Рекомендую.
1. Как не надо программировать на C++. (http://www.ozon.ru/context/detail/id/1908029/
В первой книге приводятся около 100 неработающих программ, и предлагается найти ошибку. Все это дело разбавляется разными анекдотами из жизни программистов. Книжки читается на одном дыхании. Есть задачи очень сложные, есть простые. Вот пример сложной задачи:
// Инклуды я пропускаю, т.к. не помню, что там должно включаться.int main()
{
printf("Hello");
fork();
printf("\n");
}
Нужно сказать, что выведет эта программа на консоль.
Вторая книга чем-то похожа на книги Саттера. Однако, список обсуждаемых вопросов не пересекается с Саттером. Книгу не дочитал до конца, но пока впечатления хорошие. Правда книга имеет отвратительный перевод, но многие вещи и так понятны.
Re: Нашел тут пару книг по C++
От:
Аноним
Дата:
16.05.06 13:00
Оценка:
Здравствуйте, Lonely Dog, Вы писали:
LD>int main() LD>{ LD> printf("Hello"); LD> fork(); LD> printf("\n"); LD>} LD>[/ccode]
LD>Нужно сказать, что выведет эта программа на консоль.
И что выведет? Неизвестно что там в fork(); творится
Здравствуйте, Аноним, Вы писали:
А>Здравствуйте, Lonely Dog, Вы писали:
LD>>int main() LD>>{ LD>> printf("Hello"); LD>> fork(); LD>> printf("\n"); LD>>} LD>>[/ccode]
LD>>Нужно сказать, что выведет эта программа на консоль. А>И что выведет? Неизвестно что там в fork(); творится
По идее, printf использует буфферизированный вывод. Поскольку fork делает полную копию процесса, то буфер так же останется в памят и нового процесса. Следовательно, на экран будет два раза выведено Hello.
Здравствуйте, Lonely Dog, Вы писали:
LD>Здравствуйте, Аноним, Вы писали:
А>>Здравствуйте, Lonely Dog, Вы писали:
LD>>>int main() LD>>>{ LD>>> printf("Hello"); LD>>> fork(); LD>>> printf("\n"); LD>>>} LD>>>[/ccode]
LD>>>Нужно сказать, что выведет эта программа на консоль. А>>И что выведет? Неизвестно что там в fork(); творится LD>По идее, printf использует буфферизированный вывод. Поскольку fork делает полную копию процесса, то буфер так же останется в памят и нового процесса. Следовательно, на экран будет два раза выведено Hello.
Не 2 раза, а очень-очень много раз. Пока система позволяет вложенные вызовы fork().
Эх, люблю выпить и переспать с кем нибудь!
Но чаще выходит перепить с кем — нибудь и выспаться...
Re[4]: Нашел тут пару книг по C++
От:
Аноним
Дата:
16.05.06 13:40
Оценка:
LD>>По идее, printf использует буфферизированный вывод. Поскольку fork делает полную копию процесса, то буфер так же останется в памят и нового процесса. Следовательно, на экран будет два раза выведено Hello. U>Не 2 раза, а очень-очень много раз. Пока система позволяет вложенные вызовы fork().
Здравствуйте, Ubivetz, Вы писали:
U>Здравствуйте, Lonely Dog, Вы писали:
LD>>Здравствуйте, Аноним, Вы писали:
А>>>Здравствуйте, Lonely Dog, Вы писали:
LD>>>>int main() LD>>>>{ LD>>>> printf("Hello"); LD>>>> fork(); LD>>>> printf("\n"); LD>>>>} LD>>>>[/ccode]
LD>>>>Нужно сказать, что выведет эта программа на консоль. А>>>И что выведет? Неизвестно что там в fork(); творится LD>>По идее, printf использует буфферизированный вывод. Поскольку fork делает полную копию процесса, то буфер так же останется в памят и нового процесса. Следовательно, на экран будет два раза выведено Hello. U>Не 2 раза, а очень-очень много раз. Пока система позволяет вложенные вызовы fork().
Почему? fork вызывается один раз, а потом управление передается на printf.
Здравствуйте, Lonely Dog, Вы писали:
LD>int main() LD>{ LD> printf("Hello"); LD> fork(); LD> printf("\n"); LD>} LD>[/ccode]
LD>Нужно сказать, что выведет эта программа на консоль.
Вполне дурацкий пример. Поведение fork никак не относится ни к С++ ни ко многим платформам.
Здравствуйте, Lonely Dog, Вы писали:
LD>Привет всем!!!
LD>Недавно пришло мне с озона несколько книг. В том числе, две по C++. Обе очень понравились. Рекомендую. LD>1. Как не надо программировать на C++. (http://www.ozon.ru/context/detail/id/1908029/
) LD>2. Скользкие места С++. Как избежать проблемы при проектировании и компиляции ваших программ. (http://www.ozon.ru/context/detail/id/2631001/)
LD>В первой книге приводятся около 100 неработающих программ, и предлагается найти ошибку. Все это дело разбавляется разными анекдотами из жизни программистов. Книжки читается на одном дыхании. Есть задачи очень сложные, есть простые. LD>Вторая книга чем-то похожа на книги Саттера. Однако, список обсуждаемых вопросов не пересекается с Саттером. Книгу не дочитал до конца, но пока впечатления хорошие. Правда книга имеет отвратительный перевод, но многие вещи и так понятны.
Первую читал — понравилось... Особенно понравилось, что автор не сразу ответ дает, а делает 2-3 намека... Типа обратите внимание на это...
А вот вторая — не попадалась...
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Здравствуйте, Lonely Dog, Вы писали:
LD>Здравствуйте, Ubivetz, Вы писали:
U>>Здравствуйте, Lonely Dog, Вы писали:
LD>>>Здравствуйте, Аноним, Вы писали:
А>>>>Здравствуйте, Lonely Dog, Вы писали:
LD>>>>>int main() LD>>>>>{ LD>>>>> printf("Hello"); LD>>>>> fork(); LD>>>>> printf("\n"); LD>>>>>} LD>>>>>[/ccode]
LD>>>>>Нужно сказать, что выведет эта программа на консоль. А>>>>И что выведет? Неизвестно что там в fork(); творится LD>>>По идее, printf использует буфферизированный вывод. Поскольку fork делает полную копию процесса, то буфер так же останется в памят и нового процесса. Следовательно, на экран будет два раза выведено Hello. U>>Не 2 раза, а очень-очень много раз. Пока система позволяет вложенные вызовы fork(). LD>Почему? fork вызывается один раз, а потом управление передается на printf.
Да. Согласен. Сегодня мозги перегрелись от обилия новой информации.
Эх, люблю выпить и переспать с кем нибудь!
Но чаще выходит перепить с кем — нибудь и выспаться...
Здравствуйте, Lonely Dog, Вы писали:
LD>Привет всем!!!
LD>Недавно пришло мне с озона несколько книг. В том числе, две по C++. Обе очень понравились. Рекомендую. LD>1. Как не надо программировать на C++. (http://www.ozon.ru/context/detail/id/1908029/
Здравствуйте, Lonely Dog, Вы писали:
LD>Привет всем!!!
LD>Недавно пришло мне с озона несколько книг. В том числе, две по C++. Обе очень понравились. Рекомендую.
Первую читал. В магазинах был и перевод, но я нашел pdf с оригиналом. Интересно.
А вторую вчера увидел в магазине, посмотрел содержание, показалось, что очень похожа на Майерса (кому-то Саттер, а мне Майерс первым вспомнился :)) Но все равно купил, полистаю в дороге.
"SignOff2000" <45586@users.rsdn.ru> wrote in message news:1903186@news.rsdn.ru... > Здравствуйте, Ubivetz, Вы писали: > > Блин — да это баян — тама не хватальт return 0;
Согласно п.3.6.1/5 в функции main(), инструкцию return разрешено опускать.
A return statement in main has the effect of leaving the main function (destroying any objects with automatic storage duration) and calling std::exit with the return value as the argument. If control reaches the end of main without encountering a return statement, the effect is that of executing return 0;
Posted via RSDN NNTP Server 2.0
--
Не можешь достичь желаемого — пожелай достигнутого.