46 lines
717 B
Plaintext
46 lines
717 B
Plaintext
|
lib LibC
|
||
|
WNOHANG = 0x00000001
|
||
|
|
||
|
@[ReturnsTwice]
|
||
|
fun fork : PidT
|
||
|
fun getpgid(pid : PidT) : PidT
|
||
|
fun kill(pid : PidT, signal : Int) : Int
|
||
|
fun getpid : PidT
|
||
|
fun getppid : PidT
|
||
|
fun exit(status : Int) : NoReturn
|
||
|
|
||
|
ifdef x86_64
|
||
|
alias ClockT = UInt64
|
||
|
else
|
||
|
alias ClockT = UInt32
|
||
|
end
|
||
|
|
||
|
SC_CLK_TCK = 3
|
||
|
|
||
|
struct Tms
|
||
|
utime : ClockT
|
||
|
stime : ClockT
|
||
|
cutime : ClockT
|
||
|
cstime : ClockT
|
||
|
end
|
||
|
|
||
|
fun times(buffer : Tms*) : ClockT
|
||
|
fun sysconf(name : Int) : Long
|
||
|
end
|
||
|
|
||
|
class Process
|
||
|
def self.exit(status = 0)
|
||
|
LibC.exit(status)
|
||
|
end
|
||
|
|
||
|
def self.pid
|
||
|
LibC.getpid
|
||
|
end
|
||
|
|
||
|
def self.getpgid(pid : Int32)
|
||
|
ret = LibC.getpgid(pid)
|
||
|
raise Errno.new(ret) if ret < 0
|
||
|
ret
|
||
|
end
|
||
|
end
|