S/390: Fix vector all/any cc modes.
[official-gcc.git] / libgo / go / os / proc.go
blob33a8b26f78d3db7779b23dc2e883f6ef9c094311
1 // Copyright 2009 The Go Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style
3 // license that can be found in the LICENSE file.
5 // Process etc.
7 package os
9 import (
10 "runtime"
11 "syscall"
14 // Args hold the command-line arguments, starting with the program name.
15 var Args []string
17 func init() {
18 if runtime.GOOS == "windows" {
19 // Initialized in exec_windows.go.
20 return
22 Args = runtime_args()
25 func runtime_args() []string // in package runtime
27 // Getuid returns the numeric user id of the caller.
28 func Getuid() int { return syscall.Getuid() }
30 // Geteuid returns the numeric effective user id of the caller.
31 func Geteuid() int { return syscall.Geteuid() }
33 // Getgid returns the numeric group id of the caller.
34 func Getgid() int { return syscall.Getgid() }
36 // Getegid returns the numeric effective group id of the caller.
37 func Getegid() int { return syscall.Getegid() }
39 // Getgroups returns a list of the numeric ids of groups that the caller belongs to.
40 func Getgroups() ([]int, error) {
41 gids, e := syscall.Getgroups()
42 return gids, NewSyscallError("getgroups", e)
45 // Exit causes the current program to exit with the given status code.
46 // Conventionally, code zero indicates success, non-zero an error.
47 // The program terminates immediately; deferred functions are not run.
48 func Exit(code int) {
49 if code == 0 {
50 // Give race detector a chance to fail the program.
51 // Racy programs do not have the right to finish successfully.
52 runtime_beforeExit()
54 syscall.Exit(code)
57 func runtime_beforeExit() // implemented in runtime