40
40
Procedure CHangeMode (ID : longint; mode : String);
50
If Not shmctl (shmid,IPC_STAT,@data) then
50
If shmctl (shmid,IPC_STAT,@data)=-1 then
52
writeln ('Error : shmctl :',ipcerror);
52
writeln ('Error : shmctl :',fpgeterrno);
55
55
writeln ('Old permissions : ',data.shm_perm.mode);
56
56
data.shm_perm.mode:=m;
57
If Not shmctl (shmid,IPC_SET,@data) then
57
If shmctl (shmid,IPC_SET,@data)=-1 then
59
writeln ('Error : shmctl :',ipcerror);
59
writeln ('Error : shmctl :',fpgeterrno);
62
62
writeln ('New permissions : ',data.shm_perm.mode);
65
const ftokpath = '.'#0;
66
68
if paramcount<1 then usage;
67
key := ftok ('.','S');
69
key := ftok (pchar(@ftokpath[1]),ord('S'));
68
70
shmid := shmget(key,segsize,IPC_CREAT or IPC_EXCL or 438);
71
73
Writeln ('Shared memory exists. Opening as client');
72
74
shmid := shmget(key,segsize,0);
75
Writeln ('shmget : Error !',ipcerror);
77
Writeln ('shmget : Error !',fpgeterrno);
81
83
segptr:=shmat(shmid,nil,0);
82
84
if longint(segptr)=-1 then
84
Writeln ('Shmat : error !',ipcerror);
86
Writeln ('Shmat : error !',fpgeterrno);
87
89
case upcase(paramstr(1)[1]) of