patch os, syscall, io/fs: Errno, Stdin/out/err

This commit is contained in:
xushiwei
2024-06-25 16:02:54 +08:00
parent 2fabb6951e
commit 6fc4a3ed04
8 changed files with 386 additions and 37 deletions

View File

@@ -19,7 +19,6 @@ package os
// llgo:skipall
import (
"errors"
"io/fs"
"runtime"
_ "unsafe"
@@ -31,38 +30,6 @@ const (
LLGoPackage = true
)
type timeout interface {
Timeout() bool
}
type PathError = fs.PathError
// SyscallError records an error from a specific system call.
type SyscallError struct {
Syscall string
Err error
}
func (e *SyscallError) Error() string { return e.Syscall + ": " + e.Err.Error() }
func (e *SyscallError) Unwrap() error { return e.Err }
// Timeout reports whether this error represents a timeout.
func (e *SyscallError) Timeout() bool {
t, ok := e.Err.(timeout)
return ok && t.Timeout()
}
// NewSyscallError returns, as an error, a new SyscallError
// with the given system call name and error details.
// As a convenience, if err is nil, NewSyscallError returns nil.
func NewSyscallError(syscall string, err error) error {
if err == nil {
return nil
}
return &SyscallError{syscall, err}
}
// LinkError records an error during a link or symlink or rename
// system call and the paths that caused it.
type LinkError struct {