![]() |
Модераторы: xvr |
![]() ![]() ![]() |
|
DissDoc |
|
||||||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 463 Регистрация: 13.7.2006 Репутация: нет Всего: нет |
Доброе время суток всем. После начала разбора системных вызовов появились еще некоторые вопросы. Собственно код мне не нужен, если нетрудно - объясните пожалуйста логику вызова функций.
1. В случае работы с dub
Почему здесь close(0). Т.е. почему именно 0,а не что-то другое? (да что может быть там другое?) 2. С работой fork() a)
b)
Вот в этих случаях почему 0 в exit? Я пробовал - вижу что происходит! Но exit и close никак не пойму ((( |
||||||
|
|||||||
MAKCim |
|
||||||||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 84 Всего: 207 |
нужно
вообще вопрос странный: почему нужно что-то одно, а другое не нужно что требуется в программе, то и нужно делать
а почему не должен быть 0? если fork() завершается с ошибкой тогда
-------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
||||||||
|
|||||||||
DissDoc |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 463 Регистрация: 13.7.2006 Репутация: нет Всего: нет |
![]() Что значит exit(0); close(0); И еще я где-то еще видел exit(4, 2); Вопрос тот же - что значит? |
|||
|
||||
HappyCoder |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 21 Регистрация: 31.5.2007 Репутация: нет Всего: нет |
Сам не понимаю, почему close(0). close закрывает дескриптор файла - значит, надо передавать этой функции дескрипторы. Проверь через perror("close");
exit(0) - завершение процесса произошло по нормальной причине exit(1) или exit(-1) - процесс завершился с ошибкой По поводу exit подробней написано в
|
|||
|
||||
MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 84 Всего: 207 |
1. exit(errno) 2. отрицательные коды ошибок используются в ядре Добавлено через 2 минуты и 35 секунд exit(0) - завершение процесса с нулевым кодом возврата + вызов всех функций, которые были зарегистрированы средой close(0) - в общем смысле - уменьшение счетчика ссылок на открытый файл и его удаление в случае если этот счетчик после очередного уменьшения стал нулевым -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
BlackStar |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 134 Регистрация: 13.12.2006 Репутация: 2 Всего: 5 |
man stdin
stdin = 0 stdout = 1 stderr = 2 close(0) == close(stdin) Зачем он нужен в приведенном куске кода, понятия не имею. Это сообщение отредактировал(а) BlackStar - 7.6.2007, 11:50 |
|||
|
||||
MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 84 Всего: 207 |
stdin имеет тип FILE* так что close(STDIN_FILENO) или fclose(stdin) -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
Nil |
|
|||
Новичок Профиль Группа: Участник Сообщений: 30 Регистрация: 15.4.2007 Репутация: нет Всего: нет |
MAKCim,
А разве STDIN_FILENO не макрос который в итоге даст тот же 0 ? ---- Добавлено: Прошу прощения, не верно прочитал предыдущий пост. Это сообщение отредактировал(а) Nil - 7.6.2007, 12:35 |
|||
|
||||
![]() ![]() ![]() |
Правила форума "С/С++: Программирование под Unix/Linux" | |
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, xvr. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Программирование под Unix/Linux | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |