mirror of
https://github.com/golang/sys.git
synced 2026-02-09 04:06:04 +03:00
unix: add flags parameter to Unlinkat
The flags parameter was added in https://golang.org/cl/7917. In that CL the reviewers discussed adding UnlinkAt and changing Unlinkat, and opted for the latter. Unfortunately, I then undid that in https://golang.org/cl/10032, which was a backport of (among others) https://golang.org/cl/5837. I didn't notice that in the syscall package 5837 removed Unlinkat with two parameters, but the port to the x/sys/unix package removed Unlinkat with three parameters. Argh. This CL effectively restores 7917, by adding the parameter back. Fixes golang/go#9923. Change-Id: I8fe218ac637d0eb0346b63b596666671374bd19f Reviewed-on: https://go-review.googlesource.com/18981 Reviewed-by: Rob Pike <r@golang.org>
This commit is contained in:
@@ -86,8 +86,8 @@ func Unlink(path string) error {
|
||||
|
||||
//sys unlinkat(dirfd int, path string, flags int) (err error)
|
||||
|
||||
func Unlinkat(dirfd int, path string) error {
|
||||
return unlinkat(dirfd, path, 0)
|
||||
func Unlinkat(dirfd int, path string, flags int) error {
|
||||
return unlinkat(dirfd, path, flags)
|
||||
}
|
||||
|
||||
//sys utimes(path string, times *[2]Timeval) (err error)
|
||||
|
||||
@@ -649,7 +649,7 @@ func IoctlGetTermio(fd int, req int) (*Termio, error) {
|
||||
//sysnb Uname(buf *Utsname) (err error)
|
||||
//sys Unmount(target string, flags int) (err error) = libc.umount
|
||||
//sys Unlink(path string) (err error)
|
||||
//sys Unlinkat(dirfd int, path string) (err error)
|
||||
//sys Unlinkat(dirfd int, path string, flags int) (err error)
|
||||
//sys Ustat(dev int, ubuf *Ustat_t) (err error)
|
||||
//sys Utime(path string, buf *Utimbuf) (err error)
|
||||
//sys bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) = libsocket.bind
|
||||
|
||||
@@ -1401,13 +1401,13 @@ func Unlink(path string) (err error) {
|
||||
return
|
||||
}
|
||||
|
||||
func Unlinkat(dirfd int, path string) (err error) {
|
||||
func Unlinkat(dirfd int, path string, flags int) (err error) {
|
||||
var _p0 *byte
|
||||
_p0, err = BytePtrFromString(path)
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procUnlinkat)), 2, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), 0, 0, 0, 0)
|
||||
_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procUnlinkat)), 3, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0, 0, 0)
|
||||
use(unsafe.Pointer(_p0))
|
||||
if e1 != 0 {
|
||||
err = e1
|
||||
|
||||
Reference in New Issue
Block a user