|
|
1.1 ! root 1: common/sig/whoami ! 2: character*6 whoami ! 3: integer fork, getpid, wait, tick ! 4: external trap ! 5: ! 6: call signal(2, trap, -1) ! 7: call signal(3, trap, -1) ! 8: call signal(6, trap, -1) ! 9: call signal(8, trap, -1) ! 10: call signal(15, trap, -1) ! 11: ! 12: tick = 1 ! 13: id = fork() ! 14: if (id .eq. 0) then ! 15: whoami = "child" ! 16: write(*,*) "child:", getpid() ! 17: call flush(6) ! 18: 10 call sleep(1) ! 19: write(*,'(1x,i2,$)') tick ! 20: call flush(6) ! 21: tick = tick + 1 ! 22: goto 10 ! 23: else ! 24: whoami = "parent" ! 25: call sleep(5) ! 26: write(*,*) "\nparent:", id ! 27: call flush(6) ! 28: istat = kill(id, 15) ! 29: write(*,*) "\nkill status:", istat ! 30: call flush(6) ! 31: iwait = wait(isw) ! 32: write(*,*) iwait, isw ! 33: endif ! 34: end ! 35: ! 36: subroutine trap(num) ! 37: common/sig/whoami ! 38: character*6 whoami ! 39: write(*,*) "\ntrap:", whoami, num ! 40: stop ! 41: end
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.