Автор Тема: Проблемы в работе с файлами в Linux... HELP!!!  (Прочитано 2318 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн C++

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 221
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
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);

Вот что выводит:

- [url]http://127.0.0.2/[/url]
- [url]http://127.0.0.7/[/url]
- [url]http://127.0.0.6/[/url]
- [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.
В чем проблема?

Оффлайн NeoNox

  • Координатор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3012
  • +0/-0
  • 0
    • Просмотр профиля
Проблемы в работе с файлами в Linux... HELP!!!
« Ответ #1 : 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.
The documentations is your friend

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28