| 
 Урок 15. Функции для работы с файлами (продолжение) 
Функция Utime 
utime (Date1,Date2,список_файлов); 
Изменяет дату обращения и модификации файлов из списка. Первые два элемента списка должны указывать новое значение даты обращения и модификации. Возвращает количество измененных файлов. Функция Truncate 
truncate (файл, длина); 
Усекает длину указанного файла.  
Запишем в файл file.txt строку и усечем его до 15 байт: 
#!/usr/bin/perl
# programm 15
print "Content-type: text/html\n\n";
$string = "This is a sample file";
print "Write to file: $string ";
open (file,">file.txt");
print file $string;
close file;
truncate ("file.txt",15);
open (file,"file.txt");
$string=;
close file;
print "Read from file: ",$string;
 Функция Tell 
tell (файл);
 
Возвращает текущую позицию указателя в открытом файле. Если файл не указан, то последнего читаемого файла. 
Следующий код читает 15 байт из файла "file.txt". Непременное условие работы этого кода - длина файла должна быть более 15 байт. 
print "";
open (file, "file.txt");
while (tell(file) < 15){
print getc(file);
}
print "";
 Функция Stat 
stat (файл); 
Возвращает 13 элементный массив параметров указанного файла или пустой список при ошибке. Применяется обычно следующим образом: 
 ($dev,$ino,$mode,$nlink,$uid,$gid,$rdev,$size,$atime,$mtime,$ctime,$blksize,$blocks) = stat($filename); 
 - $dev - имя устройства 
 
 - $ino - номер i-узла 
 
 - $mode - права доступа 
 
 - $nlink - количество связей 
 
 - $uid - идентификатор
 владельца 
 
 - $gid - идентификатор группы 
 
 - $rdev - тип устройства 
 
 - $size - размер файла в байтах 
 
 - $atime - дата последнего
 обращения 
 
 - $mtime - дата последней
 модификации 
 
 - $ctime - дата последнего
 изменения статуса 
 
 - $blksize - размер блока на диске
 
 
 - $blocks - количество блоков в
 файле. 
 
 
Следующий код выводит размер файла в байтах: 
$u = (stat("file.txt"))[7];
print $u;
}
Функция Seek seek (FileVar, позиция, отсчет); 
Установить указатель на произвольную позицию в файле. Если отсчет равен 0 - позиционировать от начала файла, если 1 - от текущего положения, 2 - от конца файла. Возвращает 1 при успехе и 0 - неудаче. Функция Chmod chmod (список); 
Изменить права доступа к файлам указанным в списке. Первый элемент в списке - числовое ,обычно восьмеричное значение прав. Возвращает количество файлов которым были изменены права. Пример: chmod 0666 'f1', 'f2', 'f3';  
* * * * 
Напишите программу, которая выводит все сведения об указанном файле или сообщение об ошибке, если файл не найден. 
Имя файла передается спомощью формы.
 
Напишите программу, которая выводит указанную строку файла с указанным смещением. Т.е. начинает вывод не с начала. Используйте функции Seek и Getc для решения этой задачи.
 
[Содержание] 
[Вступление] 
[необходимое для начала изучения] 
[урок 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] 
[правила хорошего тона] 
[приложение A] 
[приложение Б] 
[приложение В] 
[заключение] 
[благодарности] 
 
  |