mirror of
https://github.com/tinygo-org/tinygo.git
synced 2026-08-09 21:43:40 +00:00
os: implement process related functions
This commit implements various process related functions like os.Getuid() and os.Getpid(). It also implements or improves this support in the syscall package if it isn't available yet.
This commit is contained in:
committed by
Ron Evans
parent
e65592599c
commit
75298bb84b
@@ -0,0 +1,13 @@
|
||||
// +build baremetal wasi wasm
|
||||
|
||||
// This file emulates some process-related functions that are only available
|
||||
// under a real operating system.
|
||||
|
||||
package syscall
|
||||
|
||||
func Getuid() int { return -1 }
|
||||
func Geteuid() int { return -1 }
|
||||
func Getgid() int { return -1 }
|
||||
func Getegid() int { return -1 }
|
||||
func Getpid() int { return -1 }
|
||||
func Getppid() int { return -1 }
|
||||
@@ -0,0 +1,37 @@
|
||||
// +build !baremetal,!wasi,!wasm
|
||||
|
||||
// This file assumes there is a libc available that runs on a real operating
|
||||
// system.
|
||||
|
||||
package syscall
|
||||
|
||||
func Getuid() int { return int(libc_getuid()) }
|
||||
func Geteuid() int { return int(libc_geteuid()) }
|
||||
func Getgid() int { return int(libc_getgid()) }
|
||||
func Getegid() int { return int(libc_getegid()) }
|
||||
func Getpid() int { return int(libc_getpid()) }
|
||||
func Getppid() int { return int(libc_getppid()) }
|
||||
|
||||
// uid_t getuid(void)
|
||||
//export getuid
|
||||
func libc_getuid() int32
|
||||
|
||||
// gid_t getgid(void)
|
||||
//export getgid
|
||||
func libc_getgid() int32
|
||||
|
||||
// uid_t geteuid(void)
|
||||
//export geteuid
|
||||
func libc_geteuid() int32
|
||||
|
||||
// gid_t getegid(void)
|
||||
//export getegid
|
||||
func libc_getegid() int32
|
||||
|
||||
// gid_t getpid(void)
|
||||
//export getpid
|
||||
func libc_getpid() int32
|
||||
|
||||
// gid_t getppid(void)
|
||||
//export getppid
|
||||
func libc_getppid() int32
|
||||
@@ -98,14 +98,8 @@ type ProcAttr struct {
|
||||
type SysProcAttr struct {
|
||||
}
|
||||
|
||||
func Getegid() int { return 1 }
|
||||
func Geteuid() int { return 1 }
|
||||
func Getgid() int { return 1 }
|
||||
func Getgroups() ([]int, error) { return []int{1}, nil }
|
||||
func Getppid() int { return 2 }
|
||||
func Getpid() int { return 3 }
|
||||
func Gettimeofday(tv *Timeval) error { return ENOSYS }
|
||||
func Getuid() int { return 1 }
|
||||
func Kill(pid int, signum Signal) error { return ENOSYS }
|
||||
func Sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) {
|
||||
return 0, ENOSYS
|
||||
|
||||
@@ -62,10 +62,6 @@ func Kill(pid int, sig Signal) (err error) {
|
||||
return ENOSYS // TODO
|
||||
}
|
||||
|
||||
func Getpid() (pid int) {
|
||||
panic("unimplemented: getpid") // TODO
|
||||
}
|
||||
|
||||
func Getenv(key string) (value string, found bool) {
|
||||
data := append([]byte(key), 0)
|
||||
raw := libc_getenv(&data[0])
|
||||
|
||||
Reference in New Issue
Block a user