The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"Как открыть файл?"
Вариант для распечатки Архивированная нить - только для чтения! 
Пред. тема | След. тема 
Форумы Программирование под UNIX (Public)
Изначальное сообщение [Проследить за развитием треда]

"Как открыть файл?"
Сообщение от Sergey emailИскать по авторуВ закладки(??) on 05-Апр-04, 13:48  (MSK)
Добрый день.
Такая проблемка со скриптом:
open(DB, "+<$dbfile")||die "Can\'t open $dbfile, $!";
while (<DB>)
{
-----
-----
push (@acc,$username," ",$host," ",$address," ",($traf+$totalsize),"\n");
}
seek (DB,0,0);
print DB @acc;
Файл читается, но не перезаписывается, права 666. Как его открыть, чтобы сначала считать, а затем перезаписать?
  Рекомендовать в FAQ | Cообщить модератору | Наверх

 Оглавление

Индекс форумов | Темы | Пред. тема | След. тема
Сообщения по теме

1. "Как открыть файл?"
Сообщение от Simps emailИскать по авторуВ закладки(ok) on 06-Апр-04, 13:42  (MSK)
>Добрый день.
>Такая проблемка со скриптом:
>open(DB, "+<$dbfile")||die "Can\'t open $dbfile, $!";
>while (<DB>)
>{
>-----
>-----
>push (@acc,$username," ",$host," ",$address," ",($traf+$totalsize),"\n");
>}
>seek (DB,0,0);
>print DB @acc;
>Файл читается, но не перезаписывается, права 666. Как его открыть, чтобы сначала
>считать, а затем перезаписать?

+< открывает на чтение

               If MODE is "'<'" or nothing, the file is opened for input.  If
               MODE is "'>'", the file is truncated and opened for output,
               being created if necessary.  If MODE is "'>>'", the file is
               opened for appending, again being created if necessary.  You
               can put a "'+'" in front of the "'>'" or "'<'" to indicate that
               you want both read and write access to the file; thus "'+<'" is
               almost always preferred for read/write updates--the "'+>'" mode
               would clobber the file first.  You can't usually use either
               read-write mode for updating textfiles, since they have vari-
               able length records.  See the -i switch in the perlrun manpage
               for a better approach.  The file is created with permissions of
               "0666" modified by the process' "umask" value.
Вам надо +>
open (OTCH,"+>file.txt);
print OTCH "Shit\n";
close OTCH;

  Рекомендовать в FAQ | Cообщить модератору | Наверх

2. "Как открыть файл?"
Сообщение от Sergey emailИскать по авторуВ закладки(??) on 06-Апр-04, 20:22  (MSK)
>>Добрый день.
>>Такая проблемка со скриптом:
>>open(DB, "+<$dbfile")||die "Can\'t open $dbfile, $!";
>>while (<DB>)
>>{
>>-----
>>-----
>>push (@acc,$username," ",$host," ",$address," ",($traf+$totalsize),"\n");
>>}
>>seek (DB,0,0);
>>print DB @acc;
>>Файл читается, но не перезаписывается, права 666. Как его открыть, чтобы сначала
>>считать, а затем перезаписать?
>
>+< открывает на чтение
>
>            
>   If MODE is "'<'" or nothing, the file
>is opened for input.  If
>               MODE is "'>'", the file is truncated and opened for output,
>               being created if necessary.  If MODE is "'>>'", the file is
>            
>   opened for appending, again being created if necessary.
> You
>               can put a "'+'" in front of the "'>'" or "'<'" to indicate that
>            
>   you want both read and write access to
>the file; thus "'+<'" is
>               almost always preferred for read/write updates--the "'+>'" mode
>            
>   would clobber the file first.  You can't
>usually use either
>            
>   read-write mode for updating textfiles, since they have
>vari-
>            
>   able length records.  See the -i switch
>in the perlrun manpage
>            
>   for a better approach.  The file is
>created with permissions of
>            
>   "0666" modified by the process' "umask" value.
>Вам надо +>
>open (OTCH,"+>file.txt);
>print OTCH "Shit\n";
>close OTCH;
Спасибо за участие, ошибку нашел, лишний "\n" писал в файл и при следующем запуске скрипта обрабатывалась пустая строка и все портила.
Еще с cron помучился, понимает только абсолютные пути, даже для sendmail.
Если открывать +> содержимое файла сразу удаляется, без чтения.

  Рекомендовать в FAQ | Cообщить модератору | Наверх

3. "Как открыть файл?"
Сообщение от alchie Искать по авторуВ закладки(ok) on 07-Апр-04, 02:58  (MSK)
>Еще с cron помучился, понимает только абсолютные пути, даже для sendmail.

для этого в кронтаб можно добавить строку

PATH=/etc:/bin:/sbin:/usr/bin:/usr/sbin                                        

  Рекомендовать в FAQ | Cообщить модератору | Наверх


Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Пожалуйста, прежде чем написать сообщение, ознакомьтесь с данными рекомендациями.




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2025 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру