Minoru 20.02.2011 21:50 netbook

Господа, а подскажите-ка мне, пожалуйста, могу ли я обработку ошибок после стандартных вызовов выделять в функии? Например, у меня в программе во многих местах используется fork(), и после каждого pid = fork() приходится писать вот что:

if(pid == -1) {
perror("Error in fork():");
exit(126);
}

Собственно, вопрос: могу ли я этот if выделить в отдельную функцию и вызывать сразу после fork()? Меня смущает то, что я использую errno (perror из неё берёт номер ошибки и пишет в stderr её описание) — не выйдет ли так, что функция не сможет его увидеть?

Даже если не можете ответить, рекомендуйте пост — надеюсь, таки найдётся кто-то, кто расскажет и объяснит :)

Recommended by: @Kona-chan
1. jtootf 20.02.2011 21:52 legendre

а почему функция может его не увидеть?

2. Minorujtootf /1 20.02.2011 21:53 netbook

Ну, не знаю. Друг она считается локальной для того блока, где был вызов fork(), или что-то в таком роде. Я спрашиваю как раз потому, что не уверен, что не наступлю на костыль. Если его нет — ура :)

3. MinoruMinoru /2 20.02.2011 21:55 netbook

Собственно, мне на programming@c.j.r только что сказали, что errno — глобальная переменная. Не то чтобы я не догадывался, но всё же.

4. jtootfMinoru /3 20.02.2011 21:56 legendre

такие вопросы несколько ставят меня в тупик: /уже/ работать с fork, но /ещё/ не уметь работать с errno — это странно. удачи

Do you really want to delete ?