Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ファイルの書き込み時に更新日時を更新する #59

Open
wants to merge 2 commits into
base: master
Choose a base branch
from

Conversation

mikecat
Copy link
Contributor

@mikecat mikecat commented Aug 12, 2022

fix #52

ファイルの書き込み (ファイルの作成 = ディレクトリへの書き込み を含む) 時に、ディレクトリエントリ上の更新日時を更新します。

ls -l ( #48 ) において、新たに作成したファイルについても1980年ではなく実際の日時が表示されるようになります。

kernel/fat.cpp Outdated
dir->file_size = 0;
if (parent_dir_entry != nullptr) {
fat::SetWriteTimeToCurrent(*parent_dir_entry);
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

このやり方ではファイルと親ディレクトリの時刻がずれてしまいます。どうせやるなら同時刻を書きたいです。
SetWriteTimeToCurrentEFI_TIME* を引数に取るようにして、時刻取得は 1 回で済ませるようにしてください。

Linux ではぴったり同じ時刻になるという証拠:

$ mkdir foo_dir
$ ls -la --full-time foo_dir
total 8
drwxr-xr-x 2 uchan uchan 4096 2022-08-26 14:25:51.561915460 +0900 .
drwxr-xr-x 3 uchan uchan 4096 2022-08-26 14:25:51.561915460 +0900 ..
$ touch foo_dir/bar_file
$ ls -la --full-time foo_dir
total 8
drwxr-xr-x 2 uchan uchan 4096 2022-08-26 14:26:04.541915575 +0900 .
drwxr-xr-x 3 uchan uchan 4096 2022-08-26 14:25:51.561915460 +0900 ..
-rw-r--r-- 1 uchan uchan    0 2022-08-26 14:26:04.541915575 +0900 bar_file
$ touch foo_dir/bar_file
$ ls -la --full-time foo_dir
total 8
drwxr-xr-x 2 uchan uchan 4096 2022-08-26 14:26:04.541915575 +0900 .
drwxr-xr-x 3 uchan uchan 4096 2022-08-26 14:25:51.561915460 +0900 ..
-rw-r--r-- 1 uchan uchan    0 2022-08-26 14:26:11.201915635 +0900 bar_file

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

修正しました。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

ファイルの書き込み時に更新日時を更新する
2 participants