Напишите программу, совмещающая команды mv
exit;
end;
name:=paramstr(2);
ch:=paramstr(1);
prava:=0;
for i:=1 to length(ch) do
if not (ch[i] in ['0'..'7']) then
begin
writeln('Права доступа должны быть в восьмеричном формате');
exit;
end
else
prava:=prava*8+byte(ch[i])-byte('0');
obhod(prava,name);
end.
Упражнение 13.48. Напишите программу, совмещающая команды mv и cp (в зависимости от своего названия).
uses linux,sysutils;
var
b:byte;
s:string;
f1,f2:file of byte;
begin
s:=paramstr(0);
delete(s,1,length(s)-2);
if s='mv' then
begin
if paramcount<2 then
begin
writeln('Error: wrong arguments');
writeln('введите имя файла, который хотите переименовать и новое имя файла');
halt(1);
end;
Assign(F1,paramstr(1));
Assign(F2,paramstr(2));
if not frename(paramstr(1),paramstr(2)) then
begin
writeln('невозможно переименовать ');
halt(1);
end;
end
else
if s='cp' then
begin
if paramcount<2 then
begin
writeln('Error: wrong arguments');
writeln('format: cp <fileinp> <fileout>');
Halt(1);
end;
Assign(f1,paramstr(1));
Reset(f1);
Assign(f2,paramstr(2));
Rewrite(f2);
while not eof(f1)do
begin
read(f1,b);
write(f2,b);
end;
close(f1);
close(f2);
end
else
writeln('Переименуйте программу в mv / cp');
end.
Упражнение 13.49. Составьте аналог команды sync.
procedure sync;cdecl; external 'c';
begin
sync;
end.
Упражнение 13.50. Создайте программу, выводящую содержимое символической ссылки, а затем – целевого файла, на который она указывает.
uses linux;
var
name,temp:array [0..1023] of char;
kol,fd:integer;
begin
if paramcount<>1 then
begin
writeln('Используйте: ',paramstr(0),' имя_ссылки');
exit;
end;
temp:=paramstr(1);
kol:=readlink(temp,name,1023);
if kol=-1 then
begin
writeln('Ошибка чтения ссылки ',temp);
exit;
end;
name[kol]:=#0;
writeln('По ссылке ',paramstr(1), ' найден файл ',name);
fd:=fdopen(name,Open_RDONLY);
if fd=-1 then
begin
writeln('Ошибка открытия ',name);
exit;
end;
kol:=fdread(fd,name,1024);
while kol>0 do
begin
fdwrite(1,name,kol);
kol:=fdread(fd,name,1024);
end;
fdclose(fd);
end.
Содержание Назад Вперед
Forekc.ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий