internal:forkAndExecInChild chdir
This commit is contained in:
@@ -3,11 +3,13 @@ package main
|
|||||||
import (
|
import (
|
||||||
"bytes"
|
"bytes"
|
||||||
"os/exec"
|
"os/exec"
|
||||||
|
"path/filepath"
|
||||||
)
|
)
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
var data bytes.Buffer
|
var data bytes.Buffer
|
||||||
cmd := exec.Command("echo", "hello llgo")
|
cmd := exec.Command("echo", "hello llgo")
|
||||||
|
cmd.Dir = filepath.Dir("./")
|
||||||
cmd.Stdout = &data
|
cmd.Stdout = &data
|
||||||
err := cmd.Run()
|
err := cmd.Run()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|||||||
@@ -199,13 +199,10 @@ func forkAndExecInChild(argv0 *c.Char, argv, envv **c.Char, chroot, dir *c.Char,
|
|||||||
|
|
||||||
// Chdir
|
// Chdir
|
||||||
if dir != nil {
|
if dir != nil {
|
||||||
/* TODO(xsw):
|
if ret := os.Chdir(dir); ret < 0 {
|
||||||
_, _, err1 = rawSyscall(abi.FuncPCABI0(libc_chdir_trampoline), uintptr(unsafe.Pointer(dir)), 0, 0)
|
err1 = Errno(os.Errno())
|
||||||
if err1 != 0 {
|
|
||||||
goto childerror
|
goto childerror
|
||||||
}
|
}
|
||||||
*/
|
|
||||||
panic("todo: syscall.forkAndExecInChild - dir")
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Pass 1: look for fd[i] < i and move those up above len(fd)
|
// Pass 1: look for fd[i] < i and move those up above len(fd)
|
||||||
|
|||||||
@@ -582,13 +582,10 @@ func forkAndExecInChild1(argv0 *c.Char, argv, envv **c.Char, chroot, dir *c.Char
|
|||||||
|
|
||||||
// Chdir
|
// Chdir
|
||||||
if dir != nil {
|
if dir != nil {
|
||||||
/**
|
if ret := os.Chdir(dir); ret < 0 {
|
||||||
_, _, err1 = RawSyscall(syscall.SYS_CHDIR, uintptr(unsafe.Pointer(dir)), 0, 0)
|
err1 = Errno(os.Errno())
|
||||||
if err1 != 0 {
|
|
||||||
goto childerror
|
goto childerror
|
||||||
}
|
}
|
||||||
*/
|
|
||||||
panic("todo: syscall.forkAndExecInChild1 - dir")
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Parent death signal
|
// Parent death signal
|
||||||
|
|||||||
Reference in New Issue
Block a user