Chmod failed with exit code:
Halt(1);
end;
val(Paramstr(3),GID,Code);
if Code<>0 then
begin
Writeln('Error!!!');
Writeln('Format: ./task <Filename> <UID> <GID>');
Halt(1);
end;
if not Chown(ParamStr(1),UID,GID) then
if LinuxError=Sys_EPERM then
Writeln('You are not root!')
else
Writeln(' Chmod failed with exit code: ',LinuxError)
else
Writeln('Changed owner successfully!');
end.
Упражнение 13.44. Составьте аналог команды mkdir.
Program Tabs;
begin
{$I-}
if ParamCount=1 then
begin
MkDir(ParamStr(1));
if IOResult <> 0 then Writeln('Cannot create directory')
else Writeln('New directory created');
end
else Writeln('Error');
end.
Упражнение 13.45. Составьте аналог команды chmod.
uses linux;
var
f,ch:string;
n,i:byte;
d:integer;
begin
if paramcount<>2 then
begin
writeln('Используйте: ',paramstr(0),' права_доступа файл/каталог');
exit;
end;
f:=paramstr(2);
ch:=paramstr(1);
n:=length(ch);
d:=0;
for i:=1 to n do
if not (ch[i] in ['0'..'7']) then
begin
writeln('Права доступа должны быть в восьмеричном формате');
exit;
end
else
d:=d*8+byte(ch[i])-byte('0');
if not chmod(f,d) then
writeln('Ошибка установки прав доступа ',ch,' для ',f);
end.
Упражнение 13.46. Составьте аналог команды chown.
uses linux,strings,sysutils,crt;
type
plong=^longint;
procedure perror(s:pchar);cdecl;external 'c';
function strchr(s:string;c:char):boolean;
var
i:integer;
begin
for i:=1 to length(s) do
if s[i]=c then
begin
strchr:=true;
exit;
end;
strchr:=false;
end;
procedure getall(w:string;name:string;var uid,gid:integer);
var ts,nam1,namb1,namb2:string;
tx:text;
d:integer;
f:boolean;
begin
assign(tx,w);
reset(tx);
f:=false;
while not EOF (tx) and not f do
Forekc.ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий