[Mono-dev] Unix.Native

Greg Young gregoryyoung1 at gmail.com
Tue Jan 13 01:23:47 UTC 2015


I figured out why after a while of looking. The C code translates the argument

int Mono_Posix_FromFcntlCommand (int x, int *r)

When its something that is not a known command it returns EINVAL.
Might a better option be to try to let it pass through otherwise how
could I call for instance a value on a ac?

Cheers,

Greg

On Tue, Jan 13, 2015 at 2:28 AM, Greg Young <gregoryyoung1 at gmail.com> wrote:
> I have been trying to set F_NOCACHE via fcntl on a mac to no avail.
>
>                  r = Syscall.fcntl
> (handle.DangerousGetHandle().ToInt32(), (FcntlCommand) MAC_F_NOCACHE,
> 1);
>                  } while (UnixMarshal.ShouldRetrySyscall ((int) r));
>                  if (r == -1)
>                      UnixMarshal.ThrowExceptionForLastError ();
>
> (EINVAL)
>
> I have tried
> 48
> 0x400
> and 0x40000
> for F_NOCACHE though from
> https://github.com/realthunder/mac-headers/blob/master/usr/include/sys/fcntl.h#L256
>
> Given FcntlCommandFlags does not expose F_NOCACHE but it still should
> be fine to jam the value into the enum
>
> Has anyone set this before? Chances of finding this on google are
> slightly better than 0 :)
>
> Cheers,
>
> Greg
> --
> Studying for the Turing test



-- 
Studying for the Turing test


More information about the Mono-devel-list mailing list