decl int fd, temp, permission, data, semid, iter, pid, endval, count; string filename; enddecl int main() { begin filename="numbers.dat"; permission=1; temp = exposcall("Create",filename, permission); semid = exposcall("Semget"); fd=exposcall("Open",filename); if(fd>=0) then pid=exposcall("Fork"); pid=exposcall("Fork"); pid=exposcall("Fork"); pid=exposcall("Fork"); if(pid<0) then temp=exposcall("Write", -2, "NO PCB"); endif; pid=exposcall("Getpid"); data=pid*1000+1; endval=data+99; temp=exposcall("SemLock", semid); while(data<=endval) do temp=exposcall("Write", fd, data); data=data+1; endwhile; temp=exposcall("SemUnLock", semid); temp=exposcall("Close", fd); else temp=exposcall("Write", -2, "OPEN FAIL"); endif; temp=exposcall("Exec", "pgm2.xsm"); return 0; end }