- 开发无止境 -
Data: 2016-01-21 08:49:07Form: JournalClick: 14
func main() {
fmt.Printf("%d\n", os.Getegid()) //20
fmt.Printf("%s\n", os.Getenv("LANG")) //zh_CN.UTF-8
fmt.Printf("%d\n", os.Geteuid()) //501
fmt.Printf("%d\n", os.Getgid()) //20
ids, err := os.Getgroups()
if err != nil {
fmt.Printf("Error: %v\n", err)
return
}
fmt.Printf("%v\n", ids) //[20 12 61 79 80 81 98 33 100 204 250 395 398 399 400 701]
fmt.Printf("%d\n", os.Getpagesize()) //4096
fmt.Printf("%d\n", os.Getpid()) //2101
fmt.Printf("%d\n", os.Getppid()) //584
fmt.Printf("%d\n", os.Getuid()) //501
pwd, err := os.Getwd()
if err != nil {
fmt.Printf("Error: %v\n", err)
return
}
fmt.Printf("The current directory is: %s\n", pwd)
}
func main() {
fmt.Printf("%t\n", os.IsExist(os.ErrExist)) //true
fmt.Printf("%t\n", os.IsExist(errors.New("Custom Error"))) //false
fmt.Printf("%t\n", os.IsNotExist(os.ErrNotExist)) //true
fmt.Printf("%t\n", os.IsNotExist(errors.New("Custom Error"))) //false
fmt.Printf("%t\n", os.IsPathSeparator('/')) //true
fmt.Printf("%t\n", os.IsPathSeparator('.')) //false
fmt.Printf("%t\n", os.IsPermission(os.ErrPermission)) //true
fmt.Printf("%t\n", os.IsPermission(errors.New("Custom Error"))) //false
}
func main() {
processFindTest()
processKillTest()
processReleaseTest()
processSignal()
processStartTest()
processWait()
}
func processFindTest() {
p, err := os.FindProcess(12)
if err != nil {
fmt.Printf("Error: %v\n", err)
return
}
fmt.Printf("Process info: %+v\n", p)
}
func processKillTest() {
attr := &os.ProcAttr{
Files: []*os.File{os.Stdin, os.Stdout},
Env: os.Environ(),
}
p, err := os.StartProcess("/bin/pwd", []string{"/bin/pwd"}, attr)
if err != nil {
fmt.Printf("Error: %v\n", err)
return
}
fmt.Printf("Process info: %+v\n", p)
if err := p.Kill(); err != nil {
fmt.Printf("Error: %v\n", err)
}
}
func processReleaseTest() {
attr := &os.ProcAttr{
Files: []*os.File{os.Stdin, os.Stdout},
Env: os.Environ(),
}
p, err := os.StartProcess("/bin/pwd", []string{"/bin/pwd"}, attr)
if err != nil {
fmt.Printf("Error: %v\n", err)
return
}
fmt.Printf("Process info: %+v\n", p)
if err := p.Release(); err != nil {
fmt.Printf("Error: %v\n", err)
}
}
func processSignal() {
attr := &os.ProcAttr{
Files: []*os.File{os.Stdin, os.Stdout},
Env: os.Environ(),
}
p, err := os.StartProcess("/bin/pwd", []string{"/bin/pwd"}, attr)
if err != nil {
fmt.Printf("Error: %v\n", err)
return
}
fmt.Printf("Process info: %+v\n", p)
if err := p.Signal(os.Kill); err != nil {
fmt.Printf("Error: %v\n", err)
}
}
func processStartTest() {
attr := &os.ProcAttr{
Files: []*os.File{os.Stdin, os.Stdout},
Env: os.Environ(),
}
p, err := os.StartProcess("/bin/pwd", []string{"/bin/pwd"}, attr)
if err != nil {
fmt.Printf("Error: %v\n", err)
return
}
fmt.Printf("Process info: %+v\n", p)
}
func processWait() {
attr := &os.ProcAttr{
Files: []*os.File{os.Stdin, os.Stdout},
Env: os.Environ(),
}
p, err := os.StartProcess("/bin/pwd", []string{"/bin/pwd"}, attr)
if err != nil {
fmt.Printf("Error: %v\n", err)
return
}
ps, _ := p.Wait()
fmt.Printf("Process stat: %+v\n", ps)
}
func main() {
stateExitedTest()
statePidTest()
stateStringTest()
stateSuccessTest()
stateSysTest()
stateSystemTimeTest()
stateSysUsageTest()
stateUserTime()
}
func stateExitedTest() {
attr := &os.ProcAttr{
Files: []*os.File{os.Stdin, os.Stdout},
Env: os.Environ(),
}
p, err := os.StartProcess("/bin/pwd", []string{"/bin/pwd"}, attr)
if err != nil {
fmt.Printf("Error: %v\n", err)
return
}
ps, _ := p.Wait()
fmt.Printf("Process has been exited?: %t\n", ps.Exited())
}
func statePidTest() {
attr := &os.ProcAttr{
Files: []*os.File{os.Stdin, os.Stdout},
Env: os.Environ(),
}
p, err := os.StartProcess("/bin/pwd", []string{"/bin/pwd"}, attr)
if err != nil {
fmt.Printf("Error: %v\n", err)
return
}
ps, _ := p.Wait()
fmt.Printf("Process pid is: %d\n", ps.Pid())
}
func stateStringTest() {
attr := &os.ProcAttr{
Files: []*os.File{os.Stdin, os.Stdout},
Env: os.Environ(),
}
p, err := os.StartProcess("/bin/pwd", []string{"/bin/pwd"}, attr)
if err != nil {
fmt.Printf("Error: %v\n", err)
return
}
ps, _ := p.Wait()
fmt.Printf("Process stat: %s\n", ps.String())
}
func stateSuccessTest() {
attr := &os.ProcAttr{
Files: []*os.File{os.Stdin, os.Stdout},
Env: os.Environ(),
}
p, err := os.StartProcess("/bin/pwd", []string{"/bin/pwd"}, attr)
if err != nil {
fmt.Printf("Error: %v\n", err)
return
}
ps, _ := p.Wait()
fmt.Printf("Process has been exited successfully?: %t\n", ps.Success())
}
func stateSysTest() {
attr := &os.ProcAttr{
Files: []*os.File{os.Stdin, os.Stdout},
Env: os.Environ(),
}
p, err := os.StartProcess("/bin/pwd", []string{"/bin/pwd"}, attr)
if err != nil {
fmt.Printf("Error: %v\n", err)
return
}
ps, _ := p.Wait()
fmt.Printf("Process exit status: %+v\n", ps.Sys())
}
func stateSystemTimeTest() {
attr := &os.ProcAttr{
Files: []*os.File{os.Stdin, os.Stdout},
Env: os.Environ(),
}
p, err := os.StartProcess("/bin/pwd", []string{"/bin/pwd"}, attr)
if err != nil {
fmt.Printf("Error: %v\n", err)
return
}
ps, _ := p.Wait()
fmt.Printf("Process system cpu time: %+v\n", ps.SystemTime())
}
func stateSysUsageTest() {
attr := &os.ProcAttr{
Files: []*os.File{os.Stdin, os.Stdout},
Env: os.Environ(),
}
p, err := os.StartProcess("/bin/pwd", []string{"/bin/pwd"}, attr)
if err != nil {
fmt.Printf("Error: %v\n", err)
return
}
ps, _ := p.Wait()
fmt.Printf("Process resource usage: %+v\n", ps.SysUsage())
}
func stateUserTime() {
attr := &os.ProcAttr{
Files: []*os.File{os.Stdin, os.Stdout},
Env: os.Environ(),
}
p, err := os.StartProcess("/bin/pwd", []string{"/bin/pwd"}, attr)
if err != nil {
fmt.Printf("Error: %v\n", err)
return
}
ps, _ := p.Wait()
fmt.Printf("Process user cpu time: %+v\n", ps.UserTime())
}