LinuxからFreeBSDに移植していて、:: mknod()がerrnoで失敗することに遭遇しました:
[EINVAL] Creating anything else than a block or character spe-
cial file (or a whiteout) is not supported.
しかし、manページの前半に次のように記載されていることもわかります。
The mknod() system call requires super-user privileges.
では、LinuxとFreeBSDの両方で機能する、使用するための適切な代替呼び出しは何でしょうか?
これが発生する私のコードスニペット:
mode_t mode
= S_IFREG | S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH | S_IWOTH;
if (::mknod(_resolvedName, mode, 0)) {
私の目的は、正しい権限で空のファイルを作成することです。