で使用するためstruct timespecに変換する必要があるオブジェクトがあります。struct timevallutimes(...)
私は次のことを試みましたが、lutimes()文句を言います。
const struct timespec ts; // originally provided as function parameter from FUSE
struct timeval tv;
tv.tv_sec = ts.tv_sec;
tv.tv_usec = ts.tv_nsec / 1000;
lutimes(path, tv); // returns -1; errno=EINVAL
EINVALfromlutimesは、usec コンポーネントが の外部にあることを意味します。0 <= tv_usec < 1000000つまり、 からの変換が失敗したことを意味しtimespecます。[ソース]
timespecからに適切に変換するにはどうすればよいtimevalですか?
コマンドを使用してより徹底的にデバッグすると、特定の日付が指定されておらず、現在の時刻を使用する必要がある場合にとが含まれtouchていることがわかります。timespectv_sec = 0tv_nsec > 1000000000
どうしてこれなの?これを処理する適切な方法は何ですか?