Форумы
Kalina LUG :: Форумы :: Основной :: General |
|
<< Предыдущая тема | Следующая тема >> |
setuid или выполнить команду от другого пользователя |
Модераторы: kalina, sanitar, NaTty, COMRADE_ARTYOM, variable, Solaris, az, Andreyf1
|
Автор | Добавил | ||
LuckyStr |
|
||
ID пользователя #82
Зарегистрирован: Втр Янв 27 2009, 17:08Сообщений: 161 |
#include <iostream>
но /media/disk/log - пустой. права на /media/disk и /media/disk/log - 0777. пытался запускать и под рутом и под самим 501-ым. |
||
Наверх |
|
||
COMRADE_ARTYOM |
|
||
COMRADE_ARTYOM ID пользователя #14
Зарегистрирован: Втр Фев 19 2008, 10:18Сообщений: 863 |
на результат может и не повлияет, но разве правильно инклюдить stdio.h и stdlib.h? ЕМНИП, правильно #include <cstdio> и <cstdlib>. [ Редактирование Пнд Авг 24 2009, 18:45 ] |
||
Наверх |
|
||
vladi |
|
||
ID пользователя #38
Зарегистрирован: Пнд Мар 24 2008, 13:32Сообщений: 45 |
Я немного подредактировал. Вот исходник Вот что говорит opennet о setuid(): При успешном завершении возвращается нулевое значение. В случае ошибки возвращается -1, а переменной errno присваивается номер ошибки У тебя статус неверно проверяется. Просьба: не используй табы. А то отступы ползут. И наверное не стоит usibg namespace std; делать. В книгах так пишут, т.к. места для кода мало. [ Редактирование Пнд Авг 24 2009, 21:15 ] |
||
Наверх |
|
||
COMRADE_ARTYOM |
|
||
COMRADE_ARTYOM ID пользователя #14
Зарегистрирован: Втр Фев 19 2008, 10:18Сообщений: 863 |
а чем так плохо using namespace std? | ||
Наверх |
|
||
LuckyStr |
|
||
ID пользователя #82
Зарегистрирован: Втр Янв 27 2009, 17:08Сообщений: 161 |
спасибо большое | ||
Наверх |
|
||
vladi |
|
||
ID пользователя #38
Зарегистрирован: Пнд Мар 24 2008, 13:32Сообщений: 45 |
ua2fga написал(а) ... а чем так плохо using namespace std? Тем, что замусоривается глобальное пространство имён. А если такую штуку сделать в заголовочном файле, то настанет вообще полярный лис, т.к. using namespace std; действует на весь нижеследующий код, то есть на все файлы включившие этот заголовок (и на некоторые другие заголовочные файлы) Коротко: так больше порядка. Иногда, можно сделать так:
и использовать my_ns вместо той длинной штуки. |
||
Наверх |
|
||
Solaris |
|
||
ID пользователя #22
Зарегистрирован: Втр Фев 26 2008, 15:15Сообщений: 1559 |
Согласен что using namespace std действует на весь ниженаписанный код, зато писать этот код проще. | ||
Наверх |
|
||
COMRADE_ARTYOM |
|
||
COMRADE_ARTYOM ID пользователя #14
Зарегистрирован: Втр Фев 19 2008, 10:18Сообщений: 863 |
меня с 12ти лет учили писать using namespace std (файлы заголовков во внимание не берём). я так и не понял, что в этом такого плохого. | ||
Наверх |
|
||
vladi |
|
||
ID пользователя #38
Зарегистрирован: Пнд Мар 24 2008, 13:32Сообщений: 45 |
Ну как же. Если у нас есть переменная int cout (для примера.) Если мы пишем using namespace std; то такую переменную мы объявить не можем. Иначе -- можем, а для вывода использовать std::cout. Ну это только пример. Откудать знать что за имена зарезервированы стандартной библиотекой. А так наверняка не ошибёшься. |
||
Наверх |
|
||
COMRADE_ARTYOM |
|
||
COMRADE_ARTYOM ID пользователя #14
Зарегистрирован: Втр Фев 19 2008, 10:18Сообщений: 863 |
мне никогда не придёт в голову назвать переменную cout. по-моему проблема надумана. ещё вопрос: братья дейтелы в книге "как программировать на си++" пишут правильно? или меня ещё и не по той книжке учили? |
||
Наверх |
|
||
vladi |
|
||
ID пользователя #38
Зарегистрирован: Пнд Мар 24 2008, 13:32Сообщений: 45 |
ua2fga написал(а) ... мне никогда не придёт в голову назвать переменную cout. по-моему проблема надумана. Пример надуманн. Проблема не надуманна. Кто, положив руку на сердце, скажет, что знает все имена переменных и функций использующихся в стандартной библиотеке? ua2fga написал(а) ... ещё вопрос: братья дейтелы в книге "как программировать на си++" пишут правильно? или меня ещё и не по той книжке учили? Я уже говорил: gvv.coder написал(а) ... И наверное не стоит usibg namespace std; делать. В книгах так пишут, т.к. места для кода мало. Вот ещё пример: "Язык программирования С++" Бьерн Страуструп Специальное издание 2005. Страница 83: написал(а) ... Как правило, объявление всех имён из данного пространства глобальными является признаком плохого стиля. Однако ради краткости изложения фрагментов программ, иллюстрирующих средства языка и библиотеки, я опущу повторяющиеся #include и квалификаторы std::. |
||
Наверх |
|
||
COMRADE_ARTYOM |
|
||
COMRADE_ARTYOM ID пользователя #14
Зарегистрирован: Втр Фев 19 2008, 10:18Сообщений: 863 |
то есть правильно писать типа:
for( int y = 0; y < 3; ++y )
|
||
Наверх |
|
||
vladi |
|
||
ID пользователя #38
Зарегистрирован: Пнд Мар 24 2008, 13:32Сообщений: 45 |
Ну да. Стиль конечно у всех разный.
|
||
Наверх |
|
||
COMRADE_ARTYOM |
|
||
COMRADE_ARTYOM ID пользователя #14
Зарегистрирован: Втр Фев 19 2008, 10:18Сообщений: 863 |
ну это не мой стиль, я пример с IXBT уволок. просто для примера, что using namespace std; не написан. |
||
Наверх |
|
||
LuckyStr |
|
||
ID пользователя #82
Зарегистрирован: Втр Янв 27 2009, 17:08Сообщений: 161 |
не фигасе вы тут темы раскрываете. А считаеться ли плохим стилем, если я буду в код C++ вставлять некоторые фрагменты С, например буду работать с сокетам на С, а работать с файлами на С++? |
||
Наверх |
|
||
vladi |
|
||
ID пользователя #38
Зарегистрирован: Пнд Мар 24 2008, 13:32Сообщений: 45 |
Гм. Да фиг знает. Если честно, я то кодер не ахти. Наверное, главное не сильно смешивать. |
||
Наверх |
|
||
Solaris |
|
||
ID пользователя #22
Зарегистрирован: Втр Фев 26 2008, 15:15Сообщений: 1559 |
А по нику и не скажешь. По теме: все-таки стандарт как мне показалось писать using namespace std. Думаю назрела необходимость на форуме сделать раздел: "Программирование". |
||
Наверх |
|
||
vladi |
|
||
ID пользователя #38
Зарегистрирован: Пнд Мар 24 2008, 13:32Сообщений: 45 |
Ну дык, ник я выбирал давно. Сейчас то я понял, что программирование это посложнее чем мне тогда казалось. |
||
Наверх |
|
||
Powered by e107 Forum System