問題タブ [hfs+]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
macos - OS X でファイルシステムの変更に関する通知を受け取るにはどうすればよいですか?
Windows では、FindNextChangeNotification API を使用して、ファイルまたはフォルダーの変更を監視できます。たとえば、フォルダーを監視して、ファイルが追加または削除されたときに通知を受け取ることができます。
OS X に同様の API はありますか?
git - 同じファイルへの2つのリンクが異なる場合、gitはどのように動作する必要がありますか?
私はperlコードベース(ブランチmaint-5.004)で作業しているときに次の動作を観察しました:
これは、2つのファイルがiノードを共有している(同じファイルである)が、gitインデックスが異なるために発生しています。私の質問は:それはどのように起こったのですか?gitが同じファイルへの2つのリンクを追跡している場合、そのうちの1つだけが変更されたときに、gitがエラーとしてフラグを立てることを期待する必要がありますか?これはgitのバグですか、それともユーザーエラーですか?
アップデート:
問題はgitにあるのではなく、ファイルシステム(hfs +)の大文字と小文字の区別に関連しているようです。
この振る舞いはばかげているので、おそらくOSXを開発のための有用なプラットフォームとして再考する必要があると思います。
git - Git は Mac OS X でファイルを変更します
いくつかの Linux カーネル モジュールを含む古いリポジトリのクローンを作成しました (聞かないでください)。Linux マシンでクローンを作成すると、すべて問題ありません。しかし、私の Mac では、誰か (おそらく Mac OS X) がモジュールにバイナリ変更を加えています。私はすでに autocrlf を無効にしました。
クローンの直後の出力は次のとおりgit diff -p --stat
です。
Agit reset --hard
もそのトリックをしません。ただし、奇妙なことが起こります。リセットを行うたびに、git diff
スイッチの場所の右側のサイズとファイル名の一部の大文字が変更されます。Mac で大文字と小文字を区別しないファイルシステムを使用していますが、それが原因でしょうか? どうすればこれを修正できますか (可能であれば、Mac を再フォーマットせずに)
cocoa - 「writeToFile:atomically:」が特定の ACL を持つファイルで失敗する
ACL ルールが の書き込み可能なファイルがある場合deny delete
、どの[plistableObject writeFoFile:undeletableFile atomically:YES]
呼び出しでも が返されますがNO
、アトミックでない書き込みは成功します。
アトミック書き込みとは、一時ファイルが書き込まれ、正常に書き込まれた場合は最終的に名前が変更されることを意味します。ただし、この特定の意味は奇妙に感じます。
それで、これが原因なのだろうか...
- HFS+ には直接の「名前変更」がありません。
-[NS(Array|Dictionary|Data|String) writeToFile:atomically:]
またはの実装における欠陥- Mac OS X での ACL の実装の欠陥?
前もって感謝します
ダニエル
元の質問:
先日、バックアップから復元した Mac でこの奇妙な動作を発見しました:
ほとんどのアプリケーションは設定を保持できませんでした。~/Library/Preferences
.
さらに掘り下げてみると、どういうわけか、ほとんどの plist にはディレクティブgroup:everyone deny delete
が配置された ACL があることがわかりました。このルールを捨てることで、その日は救われました。
私はNSArray|NSDictionary|NSWhatHaveYou
'swriteToFile:atomically:
がこの動作の原因であると考えました*。確かに、私が作成したテストツールはNO
、ファイルが存在し、そのような ACL が設定されている場合に、2 番目の引数として渡された場合にのみ成功します...
(* ここで、「責任がある」とは、書いていない部分のみを意味します。ACL の状況はまったく別のものでした)
だから私は疑問に思います:
これはバグですか、それとも機能ですか?
技術的には、このメソッドはファイルを書き込み、完了時に名前を変更しますが、ユーザーの観点からは何も削除していません...
バグの場合
:
NSArray や友人に対して、または ACL の実装に対して提出する必要がありますか?
どんな考えでも大歓迎です!
乾杯
ダニエル
osx-snow-leopard - Mac VFS / HFS +でアトミックな名前変更は可能ですか?
Mac OS XでACLがサポートされているため、ファイルを書き込み可能であるが削除不可として宣言する方法があります。
VFSの現在の実装は既存のターゲットであるため、これはアトミック書き込みで問題を引き起こします。書き込み権限を持つ既存のファイルがある場合、アトミックに書き込むことができない可能性があります。
状態を示すACLをアタッチするだけで、アトミック書き込み(さまざまなCocoa APIによって実装されるような-NSArrayなど)は失敗しますが、非アトミック書き込みは問題なく成功します。rename
delete
deny delete
writeToFile:atomically:
低レベルのCコードについての私の理解はかなり限られているので
、代替の実装は、マイナーな(「マイナー」のお気に入りの定義を挿入する)頭痛だけで実行可能ですか?
ありがとう
ダニエル
java - Mac OS X でビルドされていない Eclipse プロジェクト: '大文字と小文字が異なるリソースが存在します' エラー
以前に Linux システムでビルドされたコードを継承しました。Mac OS X Snow Leopard でビルドしてみました。私のパーティションは Mac OS 拡張 (ジャーナリング) です。これは大文字と小文字を区別しないファイル システムであり、同じ名前で大文字と小文字が異なる 2 つの Java クラスからエラーが発生していることはわかっています。したがって、そのエラーは「正常」です。
私はそれを回避する方法を見つけようとしたので、ファイル システム パーティション Mac OS X 拡張 (ジャーナリング、大文字と小文字を区別) を使用してディスク イメージを作成しました。そのボリュームに、同じ名前で大文字と小文字が異なる 2 つのファイルを作成できます。
プロジェクトをコピーしましたが、エラーが残りました。次に、そのボリュームに新しいワークスペースを作成し、そのワークスペースにプロジェクトをインポートしましたが、エラーは引き続き発生します。その設定はワークスペースレベルに保存されると思います。
Eclipse は「大文字と小文字を区別する」/「大文字と小文字を区別しない」フラグをどこに保存しますか、またはワークスペースとプロジェクトが大文字と小文字を区別するボリューム上にあるにもかかわらず、Eclipse がこのエラーを生成するのはなぜですか。大文字と小文字を区別するパーティションの Mac OS X でこれが機能する方法はありますか?
クラスの名前を変更できることはわかっていますが、コードは少しファンキーで、この場合は単純なリファクタリングではありません。
ありがとう
objective-c - HFS ボリューム ヘッダーを印刷する方法
HFS+ ディスクのボリューム ヘッダーを印刷する方法のコード スニペットを教えてください。
macos - HFSジャーナル情報を印刷する方法
HFS ジャーナル情報を印刷しようとしています。仕訳ヘッダーを正常に印刷できます。しかし、block_list (ジャーナル バッファ) を出力できません。
任意の助けをいただければ幸いです.......
php - OSX10.6.7で作成されたphpファイルの追加属性
phpスクリプトを使用して、MAMPを使用してローカルOSX 10.6.7でLaTeXファイル(report.tex)を生成します(ファイルシステムはHFS +です)。次にexec()
、LaTexを使用してファイルをビルドするために使用します。.texはファイルシステム上で適切に作成されますが、ファインダーやLaTexによって.texファイルとして認識されません。問題がファイル自体にあるのではなく、phpスクリプトが作成した方法にあることを確認しました。
実際、テキストエディタを使用してreport.texを作成すると、ファイルはシステムによって正しく処理され、LaTexで問題は発生しません。phpスクリプトを実行すると、同じディレクトリに同じ名前(!)の別のファイルが作成されます。内部的には、これらのファイルはまったく同じであり、16進エディタでチェックされます。ls -ls@
dirで実行すると、次のようになります。
最後のファイルはphpで生成されたものです。xattr -p com.apple.FinderInfo
最初のファイルで実行すると、
そして、私が実行した場合xattr -p com.apple.TextEncoding
、
テキストエディタを指定すると、2番目のファイルを問題なく開くことができます(このファイルは.texとして認識されませんが、最初のファイルは認識されます!)。その後、ファイルはTextWranglerで正常に表示されますが、texの構文の色付けはアクティブ化されていません(最初のファイルに対してアクティブ化され、その内容はバイト単位で同じです)。
これらの問題は、この余分な属性に関連していると確信しています。私の質問は:PHPまたはOSXで正しい動作を実現する方法はありますか?つまり、phpによって作成されたファイルは通常の.texファイルとして認識され、たとえば最初のファイルを上書きします(もちろん処理できます) LaTexによる)?
よろしく、
トム
windows - Windows での HFS+ 読み取りアクセス
HFS+ (Mac) パーティション ドライブでいくつかのファイルを読み書きする必要がありますが、そのための API が既に作成されているのではないかと考えています。そうでない場合、この問題に最初からどのようにアプローチしますか。