f8d9fa9e80
This upgrades all of libgo other than the runtime package to the Go 1.4 release. In Go 1.4 much of the runtime was rewritten into Go. Merging that code will take more time and will not change the API, so I'm putting it off for now. There are a few runtime changes anyhow, to accomodate other packages that rely on minor modifications to the runtime support. The compiler changes slightly to add a one-bit flag to each type descriptor kind that is stored directly in an interface, which for gccgo is currently only pointer types. Another one-bit flag (gcprog) is reserved because it is used by the gc compiler, but gccgo does not currently use it. There is another error check in the compiler since I ran across it during testing. gotools/: * Makefile.am (go_cmd_go_files): Sort entries. Add generate.go. * Makefile.in: Rebuild. From-SVN: r219627
50 lines
1.3 KiB
Go
50 lines
1.3 KiB
Go
// 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) { syscall.Exit(code) }
|