github.com/tinygo-org/tinygo@v0.31.3-0.20240404173401-90b0bf646c27/src/syscall/file_hosted.go (about)

     1  //go:build !(baremetal || (wasm && !wasip1) || wasm_unknown)
     2  
     3  // This file assumes there is a libc available that runs on a real operating
     4  // system.
     5  
     6  package syscall
     7  
     8  const pathMax = 1024
     9  
    10  func Getwd() (string, error) {
    11  	var buf [pathMax]byte
    12  	s := libc_getcwd(&buf[0], uint(len(buf)))
    13  	if s == nil {
    14  		return "", getErrno()
    15  	}
    16  	n := clen(buf[:])
    17  	if n < 1 {
    18  		return "", EINVAL
    19  	}
    20  	return string(buf[:n]), nil
    21  }
    22  
    23  // char *getcwd(char *buf, size_t size)
    24  //
    25  //export getcwd
    26  func libc_getcwd(buf *byte, size uint) *byte