nixp.ru v3.0

20 января 2017,
пятница,
14:59:52 MSK

DevOps с компанией «Флант»
Аватар пользователя used
used написал 15 декабря 2009 года в 23:27 (523 просмотра) Ведет себя как мужчина; открыл 5 тем в форуме, оставил 15 комментариев на сайте.

Здравствуйте!

int main ( int argc, char *argv[] )

{

cout << «Hello, world!» << endl;

FILE *fp,*fp_mon;

FILE *outf,*inf;

unsigned int i,ii,j,k,n,prioritet,nzak;

int nya,nuzno_cell,n_max,n_izd;

char c,*s,*v,ss[128],q[128],zakaz[10];

zapis tb;

DIR *dir;

dirent *dd;

fp_mon=fopen(«monitor»,«w+b»);

if(!fp_mon)

{

printf(«Fail not open monitor\n»);

return 1;

}

dir=opendir(«/tmp/BB»);

if(!dir)

return 1;;

while(1)

{

dd=readdir(dir);

if(!dd)

break;

s=strchr(dd->d_name,’M');

if(s)

{

sprintf(ss,«/tmp/BB/%s»,dd->d_name);

fp=fopen(dd->d_name,«rb»);

if(fp)

{

while(1)

{

if(!fread(&tb,sizeof(zapis),1,fp))

break;

fwrite(&tb,sizeof(zapis),1,fp_mon);

}

fclose(fp);

remove(dd->d_name);

}

else

printf(«not_open %ld\n»,fp);

}

}

fclose(fp_mon);

return 0;

}

Программа не открывает файлы «M*****»даже если пользователь рут.

А в допуске к файлам разрешено все.

При чем в МС файлы копируютс,стираются и модифицируются даже простым пользователем

used

ОС FEDORA 8? планируется использовать в ОС

ScientificLinux5.0

metal

Скорее всего EACCES на opendir.

Писать надо программы аккуратно, чтобы не приходилось гадать.

used

Если программа запущена в /tmp/BB то она открывает и читает файлы M* даже простым пользователем.

А какие выводы надо сделать из

«Скорее всего EACCES на opendir»

я не понял.Спасибо за внимание

rudchenkos

Нужно обрабатывать возможные ошибки после вызова функция API системы и выводить диагностические сообщения (например, с помощью функции perror) и тогда многие вопросы отпадут сами собой.

ecobeingecobeing.ru
Экология и вегетарианство на благо всем живым существам Планеты.