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
а почему функция может его не увидеть?
Ну, не знаю. Друг она считается локальной для того блока, где был вызов fork(), или что-то в таком роде. Я спрашиваю как раз потому, что не уверен, что не наступлю на костыль. Если его нет — ура :)
Собственно, мне на programming@c.j.r только что сказали, что errno — глобальная переменная. Не то чтобы я не догадывался, но всё же.
такие вопросы несколько ставят меня в тупик: /уже/ работать с fork, но /ещё/ не уметь работать с errno — это странно. удачи