Нашел тут пару книг по C++
От: Lonely Dog Россия  
Дата: 16.05.06 12:52
Оценка:
Привет всем!!!

Недавно пришло мне с озона несколько книг. В том числе, две по C++. Обе очень понравились. Рекомендую.
1. Как не надо программировать на C++. (http://www.ozon.ru/context/detail/id/1908029/
Автор(ы): С. Уэллин
Издательство: Питер
Цена: 142р.

Как известно, умный учится на чужих ошибках, а глупец — на своих. Книга Стива Уэллина содержит впечатляющую подборку ошибок, часто встречающихся при программировании на C++, от элементарных до самых сложных и изощренных. В сущности, это
)
2. Скользкие места С++. Как избежать проблемы при проектировании и компиляции ваших программ. (http://www.ozon.ru/context/detail/id/2631001/)

В первой книге приводятся около 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(); творится
Re[2]: Нашел тут пару книг по C++
От: Lonely Dog Россия  
Дата: 16.05.06 13:04
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Здравствуйте, Lonely Dog, Вы писали:


LD>>int main()

LD>>{
LD>> printf("Hello");
LD>> fork();
LD>> printf("\n");
LD>>}
LD>>[/ccode]

LD>>Нужно сказать, что выведет эта программа на консоль.

А>И что выведет? Неизвестно что там в fork(); творится
По идее, printf использует буфферизированный вывод. Поскольку fork делает полную копию процесса, то буфер так же останется в памят и нового процесса. Следовательно, на экран будет два раза выведено Hello.
Re[3]: Нашел тут пару книг по C++
От: Ubivetz Украина  
Дата: 16.05.06 13:37
Оценка:
Здравствуйте, 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().

С чего это? 2 раза, все правильно.
Re[4]: Нашел тут пару книг по C++
От: Lonely Dog Россия  
Дата: 16.05.06 13:47
Оценка:
Здравствуйте, 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.
Re: Нашел тут пару книг по C++
От: Аноним  
Дата: 16.05.06 15:02
Оценка: +2
Здравствуйте, Lonely Dog, Вы писали:

LD>int main()

LD>{
LD> printf("Hello");
LD> fork();
LD> printf("\n");
LD>}
LD>[/ccode]

LD>Нужно сказать, что выведет эта программа на консоль.


Вполне дурацкий пример. Поведение fork никак не относится ни к С++ ни ко многим платформам.
Re: Нашел тут пару книг по C++
От: LaptevVV Россия  
Дата: 16.05.06 15:08
Оценка:
Здравствуйте, Lonely Dog, Вы писали:

LD>Привет всем!!!


LD>Недавно пришло мне с озона несколько книг. В том числе, две по C++. Обе очень понравились. Рекомендую.

LD>1. Как не надо программировать на C++. (http://www.ozon.ru/context/detail/id/1908029/
Автор(ы): С. Уэллин
Издательство: Питер
Цена: 142р.

Как известно, умный учится на чужих ошибках, а глупец — на своих. Книга Стива Уэллина содержит впечатляющую подборку ошибок, часто встречающихся при программировании на C++, от элементарных до самых сложных и изощренных. В сущности, это
)

LD>2. Скользкие места С++. Как избежать проблемы при проектировании и компиляции ваших программ. (http://www.ozon.ru/context/detail/id/2631001/)

LD>В первой книге приводятся около 100 неработающих программ, и предлагается найти ошибку. Все это дело разбавляется разными анекдотами из жизни программистов. Книжки читается на одном дыхании. Есть задачи очень сложные, есть простые.

LD>Вторая книга чем-то похожа на книги Саттера. Однако, список обсуждаемых вопросов не пересекается с Саттером. Книгу не дочитал до конца, но пока впечатления хорошие. Правда книга имеет отвратительный перевод, но многие вещи и так понятны.

Первую читал — понравилось... Особенно понравилось, что автор не сразу ответ дает, а делает 2-3 намека... Типа обратите внимание на это...

А вот вторая — не попадалась...
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[5]: Нашел тут пару книг по C++
От: Ubivetz Украина  
Дата: 16.05.06 15:12
Оценка:
Здравствуйте, 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.
Да. Согласен. Сегодня мозги перегрелись от обилия новой информации.
Эх, люблю выпить и переспать с кем нибудь!
Но чаще выходит перепить с кем — нибудь и выспаться...
Re: Нашел тут пару книг по C++
От: maggres Россия  
Дата: 17.05.06 05:55
Оценка:
Здравствуйте, Lonely Dog, Вы писали:

LD>Привет всем!!!


LD>Недавно пришло мне с озона несколько книг. В том числе, две по C++. Обе очень понравились. Рекомендую.

LD>1. Как не надо программировать на C++. (http://www.ozon.ru/context/detail/id/1908029/
Автор(ы): С. Уэллин
Издательство: Питер
Цена: 142р.

Как известно, умный учится на чужих ошибках, а глупец — на своих. Книга Стива Уэллина содержит впечатляющую подборку ошибок, часто встречающихся при программировании на C++, от элементарных до самых сложных и изощренных. В сущности, это
)


Веселая и занимательная книжка, к приобретению рекомендовать можно.


LD>
LD>// Инклуды я пропускаю, т.к. не помню, что там должно включаться.

LD>int main()
LD>{
LD>  printf("Hello");
LD>  fork();
LD>  printf("\n");
LD>}
LD>


LD>Нужно сказать, что выведет эта программа на консоль.


Мне кажет в моей версии этот пример чуть оличается..
int main()
{
    std::cout<<"Hello";
    fork();
    std::cout<<endl;
    return 0;
}


Ответ и объяснения есть в ветке чуть выше, все становиться очевидно после пониманию как поток вывода буфферезует данные
Re: Нашел тут пару книг по C++
От: pon4ik  
Дата: 17.05.06 13:03
Оценка:
Здравствуйте, Lonely Dog, Вы писали:

LD>Привет всем!!!


LD>Недавно пришло мне с озона несколько книг. В том числе, две по C++. Обе очень понравились. Рекомендую.


Первую читал. В магазинах был и перевод, но я нашел pdf с оригиналом. Интересно.
А вторую вчера увидел в магазине, посмотрел содержание, показалось, что очень похожа на Майерса (кому-то Саттер, а мне Майерс первым вспомнился :)) Но все равно купил, полистаю в дороге.
Re[6]: Нашел тут пару книг по C++
От: SignOff2000 Швеция http://a.com
Дата: 18.05.06 06:52
Оценка:
Здравствуйте, Ubivetz, Вы писали:

Блин — да это баян — тама не хватальт return 0;
Re[7]: Нашел тут пару книг по C++
От: rg45 СССР  
Дата: 18.05.06 07:04
Оценка:
"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
--
Не можешь достичь желаемого — пожелай достигнутого.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.