Forum Webscript.Ru

Программирование => Perl => Тема начата: C++ от 21 Февраля 2003, 14:49:09

Название: Проблемы в работе с файлами в Linux... HELP!!!
Отправлено: C++ от 21 Февраля 2003, 14:49:09
1) не хочет выполняться tell(F), т.е. выполняется, но позиция всегда возвращается равная 0
вот кусок кода:

sysopen(F,$f,O_RDONLY);
binmode(F);
flock(F,1);
my $i=0;
my @ta=();
my $f_size=-s $f;
my $f_pos=tell(F);
while(sysread(F,my $data,$size)&&$i<256&&$f_pos<$f_size)
   {
      @tr=unpack($templ,$data);
      $f_pos=tell(F)
      print "$f_pos - $tr[0]
";
      if($tr[1]==$aw){last}
      $i++;
   }
$tr[0]="http://blabla.ru";
sysseek(F,$f_pos-$size,0);
syswrite(F,pack($templ,@tr),$size);
 
Вот что выводит:

0 - [url]http://127.0.0.2/[/url]
0 - [url]http://127.0.0.7/[/url]
0 - [url]http://127.0.0.6/[/url]
0 - [url]http://127.0.0.5/[/url]
ЧЕМ МОЖНО ЗАМЕНИТЬ ЭТУ ФУНКЦИЮ ИЛИ КАК СДЕЛАТЬ ЧТОБЫ ОНА РАБОТАЛА?

ЧЕМ ОТЛИЧАЮТСЯ ФУНКЦИИ РАБОТЫ С ФАЙЛАМИ sysopen от open, sysread от read, syswrite от print sysseek от seek, какие лучше использовать?

В коммандной строке набираю perldoc -f ....
он мне отвечает :
Superuser must not run /usr/bin/perldoc without security audit and taint checks.
В чем проблема?
Название: Проблемы в работе с файлами в Linux... HELP!!!
Отправлено: NeoNox от 21 Февраля 2003, 15:00:35
Цитировать
В чем проблема?

Выйди из-под root -а
Цитировать
ЧЕМ ОТЛИЧАЮТСЯ ФУНКЦИИ РАБОТЫ С ФАЙЛАМИ sysopen от open, sysread от read, syswrite от print sysseek от seek, какие лучше использовать?

HINT:
perldoc -f tell
Do not use tell() on a filehandle that has been opened using
sysopen(), use sysseek() for that as described above.