1

私はubuntu linuxを使用しており、私はC言語の初心者です。フォルダー内で起動するとロックファイルを作成するプログラムを作成しましたが、ファイルとフォルダーの両方が.folderと.fileのように[DOT]であり、Linuxはそのようなものを非表示にしますファイルとフォルダーがあり、ファイルが存在するかどうかをチェックする別のプログラムがあり、存在する場合はプログラムが実行されており、そうでない場合は単純ではないここに私のコードがあります

FILE* lockfile = fopen("/.folder/.lock", "r");
if (!lockfile) {
    printf("Cannot find lock file");
} else {
    printf("lock file found");
}

フォルダーはルートディレクトリにあり、ファイルを読みたいだけなので、アクセスとして「r」を指定しました。多くの検索を行いましたが、Windowsベースのプログラムに対する回答しか見つかりませんでした。どこが間違っているのか、またはそれに対する解決策を誰かが指摘できますか? cを介してLinuxの隠しファイルとフォルダーを読み取るにはどうすればよいですか?

編集:物事をもう少し明確にするために画像を追加しました

フォルダ

現在の.folderユーザーのすべての権限を持つディレクトリ

ファイル ファイルには現在のユーザーの.lock読み取り権限もあるので、権限に問題はないと思いますか、それともまだ間違っていますか?

4

2 に答える 2

4
i just wanna read the file so i gave "r" as the access

これが問題です。フォルダへの読み取り()アクセスのみがある場合は、そのフォルダの内容を一覧表示()することしかできず、そのフォルダ内のファイルの読み取りや書き込みはできません。これが失敗する理由です。rlsfopen

xディレクトリ内のファイルを読み取る場合は、そのディレクトリに対するexecute()権限も付与する必要があります。したがって、ディレクトリには読み取りと実行の両方のアクセス許可(rおよびx)があります。

于 2012-12-05T18:37:56.583 に答える
3

*nix には「隠し」ファイルなどというものはありません。先頭のドットは、表示を禁止するためのツールが従う規則ですが、それらとシステム内の同じタイプの他のファイルシステム オブジェクトとの間に違いはありません。

于 2012-12-05T18:37:17.250 に答える