native_readlinkat function

void native_readlinkat(
  1. int fd,
  2. String path,
  3. Pointer<Utf8> buf,
  4. int len,
)

Like readlink but a relative PATH is interpreted relative to FD.

Implementation

void native_readlinkat(
  int fd,
  String path,
  ffi.Pointer<Utf8> buf,
  int len,
) {
  final cPath = path.toNativeUtf8();

  _readlinkat ??= Libc().dylib.lookupFunction<
      ffi.Int64 Function(
          ffi.Int32, ffi.Pointer<Utf8>, ffi.Pointer<Utf8>, ffi.Uint64),
      _dart_readlinkat>('readlinkat');
  final result = _readlinkat!(
    fd,
    cPath,
    buf,
    len,
  );

  _throwIfErrno('readlinkat', result, cPath);

  malloc.free(cPath);
}