// Copyright 2009 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // Process etc. package os import ( "runtime" "syscall" ) // Args hold the command-line arguments, starting with the program name. var Args []string func init() { if runtime.GOOS == "windows" { // Initialized in exec_windows.go. return } Args = runtime_args() } func runtime_args() []string // in package runtime // Getuid returns the numeric user id of the caller. func Getuid() int { return syscall.Getuid() } // Geteuid returns the numeric effective user id of the caller. func Geteuid() int { return syscall.Geteuid() } // Getgid returns the numeric group id of the caller. func Getgid() int { return syscall.Getgid() } // Getegid returns the numeric effective group id of the caller. func Getegid() int { return syscall.Getegid() } // Getgroups returns a list of the numeric ids of groups that the caller belongs to. func Getgroups() ([]int, error) { gids, e := syscall.Getgroups() return gids, NewSyscallError("getgroups", e) } // Exit causes the current program to exit with the given status code. // Conventionally, code zero indicates success, non-zero an error. // The program terminates immediately; deferred functions are not run. func Exit(code int) { if code == 0 { // Give race detector a chance to fail the program. // Racy programs do not have the right to finish successfully. runtime_beforeExit() } syscall.Exit(code) } func runtime_beforeExit() // implemented in runtime