mirror of
https://github.com/golang/go.git
synced 2025-12-08 06:10:04 +00:00
26 lines
565 B
Go
26 lines
565 B
Go
|
|
// Copyright 2020 The Go Authors. All rights reserved.
|
||
|
|
// Use of this source code is governed by a BSD-style
|
||
|
|
// license that can be found in the LICENSE file.
|
||
|
|
|
||
|
|
// +build illumos
|
||
|
|
|
||
|
|
// Illumos system calls not present on Solaris.
|
||
|
|
|
||
|
|
package syscall
|
||
|
|
|
||
|
|
import "unsafe"
|
||
|
|
|
||
|
|
//go:cgo_import_dynamic libc_flock flock "libc.so"
|
||
|
|
|
||
|
|
//go:linkname procFlock libc_flock
|
||
|
|
|
||
|
|
var procFlock libcFunc
|
||
|
|
|
||
|
|
func Flock(fd int, how int) error {
|
||
|
|
_, _, errno := sysvicall6(uintptr(unsafe.Pointer(&procFlock)), 2, uintptr(fd), uintptr(how), 0, 0, 0, 0)
|
||
|
|
if errno != 0 {
|
||
|
|
return errno
|
||
|
|
}
|
||
|
|
return nil
|
||
|
|
}
|