で使用するためstruct timespec
に変換する必要があるオブジェクトがあります。struct timeval
lutimes(...)
私は次のことを試みましたが、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
EINVAL
fromlutimes
は、usec コンポーネントが の外部にあることを意味します。0 <= tv_usec < 1000000
つまり、 からの変換が失敗したことを意味しtimespec
ます。[ソース]
timespec
からに適切に変換するにはどうすればよいtimeval
ですか?
コマンドを使用してより徹底的にデバッグすると、特定の日付が指定されておらず、現在の時刻を使用する必要がある場合にとが含まれtouch
ていることがわかります。timespec
tv_sec = 0
tv_nsec > 1000000000
どうしてこれなの?これを処理する適切な方法は何ですか?