mirror of
https://github.com/golang/go.git
synced 2025-12-08 06:10:04 +00:00
runtime: change fcntl to return two values
Separate the result and the errno value, rather than assuming that the result can never be negative. Change-Id: Ib01a70a3d46285aa77e95371cdde74e1504e7c12 Reviewed-on: https://go-review.googlesource.com/c/go/+/496416 Run-TryBot: Ian Lance Taylor <iant@golang.org> Run-TryBot: Ian Lance Taylor <iant@google.com> TryBot-Result: Gopher Robot <gobot@golang.org> Reviewed-by: Ian Lance Taylor <iant@google.com> Reviewed-by: Bryan Mills <bcmills@google.com> Auto-Submit: Ian Lance Taylor <iant@google.com>
This commit is contained in:
parent
9c447b7cf6
commit
10532fdb14
28 changed files with 179 additions and 109 deletions
|
|
@ -14,12 +14,12 @@ import (
|
|||
// Implemented in the runtime package.
|
||||
//
|
||||
//go:linkname fcntl runtime.fcntl
|
||||
func fcntl(fd int32, cmd int32, arg int32) int32
|
||||
func fcntl(fd int32, cmd int32, arg int32) (int32, int32)
|
||||
|
||||
func Fcntl(fd int, cmd int, arg int) (int, error) {
|
||||
val := fcntl(int32(fd), int32(cmd), int32(arg))
|
||||
if val < 0 {
|
||||
return 0, syscall.Errno(-val)
|
||||
val, errno := fcntl(int32(fd), int32(cmd), int32(arg))
|
||||
if val == -1 {
|
||||
return int(val), syscall.Errno(errno)
|
||||
}
|
||||
return int(val), nil
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue