問題タブ [unlink]

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.

0 投票する
8 に答える
6272 参照

c++ - プログラム終了時のファイル削除の保証 (C/C++)

Win32にCreateFileは がありますFILE_FLAG_DELETE_ON_CLOSEが、私は Linux を使用しています。

プログラムの終了時に常に削除される一時ファイルを開きたいです。プログラムがクラッシュした場合、これを保証するのは現実的ではないかもしれないことは理解できましたが、それ以外の場合は動作させたいと思っています。

私はRAIについて知っています。信号については知っています。について知っていatexit(3)ます。ファイルを開いてすぐに削除できることはわかっていますが、ファイル記述子が閉じられるまで (クラッシュを処理することさえあります)、ファイルは引き続きアクセス可能です。これらのどれも完全で簡単な解決策のようには見えません:

  1. RAII: 行ったこと: デストラクタがファイルを削除するオブジェクトがありますが、プログラムがシグナルによって終了された場合、デストラクタは呼び出されません。
  2. シグナル: シグナル ハンドラーの登録をトリッキーな命題にする低レベルのライブラリを作成しています。たとえば、アプリケーションがシグナル自体を使用する場合はどうなるでしょうか。つま先を踏みたくない。対処するために を巧妙に使用することを検討するかもしれませんsigaction(2)が、この可能性についてはまだ十分に考えていません。
  3. atexit(3): 異常終了時に呼び出されないため (たとえば、シグナルを介して)、明らかに役に立たない。
  4. preemptive unlink(2): ファイルをファイル システムに表示したままにしておく必要があることを除けば、これは非常に優れています (そうしないと、システムの監視やトラブルシューティングが難しくなります)。

ここで何をしますか?

詳細説明

元の投稿で 1 つの詳細を省略しましたが、含める必要があったことに今気づきました。この場合の「ファイル」は、厳密には通常のファイルではなく、POSIX メッセージ キューです。経由で作成しmq_open()ます。mq_close()orで閉じることができますclose()(前者は私のシステムでは後者のエイリアスです)。経由でシステムから削除できますmq_unlink()。ファイルが存在するディレクトリを選択できないことを除いて、これらすべてが通常のファイルに似ています。/tmp「ファイル」は非常に限られた容量の仮想ファイルシステムでシステムによって作成されるため、これにより、現在最も一般的な回答 (ファイルを に配置する) が機能しなくなります。/dev/mqueue(の例に従って、仮想ファイルシステムを にマウントしましたman mq_overview) 。

これは、名前を表示したままにしておく必要がある理由も説明しています (即時リンク解除アプローチが機能しなくなります)。「ファイル」は 2 つ以上のプロセス間で共有する必要があります。

0 投票する
2 に答える
5553 参照

php - 要素ポインタによる配列要素の削除(エイリアス)

ポインタで配列要素を削除することは可能ですか?

多次元配列:

参照配列:

参照配列には、多次元配列要素へのポインター(エイリアス)のみが含まれます。次に、$ list配列から要素を削除(リンク解除)します。

を使用して、

しかし、PHPはポインタを削除するだけです。

0 投票する
1 に答える
340 参照

php - 私のphpコードがテキストファイルを「リンク解除」しないのはなぜですか?

2 つのテキスト ファイルと、それらを削除するための PHP スクリプトがあります。私の質問は、2 つのテキスト ファイルが削除されないのはなぜですか? 両方とも 777 に設定されています。許可設定を変更する必要がありますか? 関数の実行を許可していないのは私のウェブホストだと思います...

ここに私のコードがあります: http://informationalinformation.info/fg/cron.php

0 投票する
1 に答える
246 参照

php - PHPデーモンの子プロセスからファイルを削除できないのはなぜですか?

http://www.phpclasses.org/browse/file/8958.htmlで提供されているphpデーモンクラスを使用して、単純なPHPデーモンスクリプトを作成しています。

私は良くも悪くもこのクラスで立ち往生していて、これを成し遂げる時間はあまりありません。したがって、デーモンにカスタムコマンドを発行するために、/tmpディレクトリにあるコマンドファイルを使用しています。ただし、デーモンがそこに含まれるコマンドを処理した後、このファイルを削除する必要があります。

ただし、PHPでファイルを「リンク解除」しようとすると、リンク解除操作が失敗し、ファイルが残ります。私はそれが許可の問題ではないという事実を知っています。実際、これはデーモンの各「反復」が子プロセスとして生成され、サブプロセスがファイルを削除する権限を持っていない必要があるという事実と関係があると確信しています。

私の質問:PHPがこのファイルを削除できないのはなぜですか?また、それに対して何ができますか?

0 投票する
4 に答える
1227 参照

php - ソースフォルダと比較して、宛先フォルダから不要なファイルとフォルダを削除します

私はPHPを使用しており、次のようなスクリプトを作成する必要があります。

2つのフォルダー構造を比較する必要があり、ソースフォルダーを参照して、参照ソースフォルダーに存在しない他の宛先フォルダーに存在するすべてのファイル/フォルダーを削除したいのですが、どうすればよいですか?

編集:

上記のコードは私がしたことを示しています。ここで私のcopy1フォルダーにはcopy2フォルダーよりも余分なファイルが含まれているため、これらの余分なファイルを削除する必要があります。

編集済み: 以下の出力は、元のミラーの配列と両方の違いです。

差分配列で削除するループを繰り返すと、表示された出力に従ってすべてのファイルを削除する必要があります。これを修正するにはどうすればよいですか。削除のループを以下に示します。

0 投票する
2 に答える
3614 参照

php - PHP のリンクを解除するか、自分のファイルまたは現在のファイルを単独で書き換えます

タスク: 最初のウォークスルー後にファイルをカットまたは消去します。

別のphpファイルを作成する「index.php」というインストールファイルがあります。

新しいファイルの作成後、このファイルが呼び出され、非常に長く、最初のインストールでのみ必要になるため、filecreation 呼び出しを消去するつもりです。

そのため、上記のコードに追加します

現在のファイルを変更したり、最初の呼び出し後にファイルを「自己破壊」するための簡単な方法や関数はありませんか?

よろしく

編集:編集する方法を見つけました、zafに申し訳ありません

実行後に「ヘルパーファイル」を削除するために使用できます。

0 投票する
2 に答える
4027 参照

php - ファイルを chmod できません:「操作は許可されていません」

PHP経由でディレクトリからファイルを削除したい。どういうわけか、私の php_errorlog は常に私に教えてくれます:

[2010 年 6 月 6 日 19:38:46] PHP 警告: chmod() [function.chmod]: /Users/myname/htdocs/ での操作は許可されていません

私は何を間違っていますか?ありがとうございました

0 投票する
3 に答える
1346 参照

macos - iノードを維持しながらシンボリックリンクターゲットを変更する方法

通常、シンボリックリンクターゲットを変更するには、最初にファイルのリンクを解除してから、新しいターゲットパスでシンボリックリンクを再作成します。ただし、新しいiノード番号が割り当てられます。

update_target_for_symlink()たぶん、関数を備えたプライベートMac APIがあるので、iノードは同じままでいられますか?

あなたが私がそれを何のために必要とするのか疑問に思う場合に備えて..ファイルマネージャ。私はこれがまったく可能であるとは思えません。とにかくそれが面白いのです。

0 投票する
7 に答える
3757 参照

php - PHPでUNLINKのセキュリティリスクを回避するにはどうすればよいですか?

とでUNLINKを使用しPHPていAJAXます。誰もがどんなファイルでも削除できるので、この方法は非常に危険であることを私は知っています。しかしAJAX、ファイルを削除するとページをリロードできないため、使用する必要があります。

では、ファイルを所有しているユーザーに対してのみファイルを削除できるようにするにはどうすればよいですか?

私がここで何か間違ったことやあなたが考えていることをしていると思っていて、それが役に立つと思うなら、他のことも教えてください:)

私のPHPコード:


私のAJAXコード:


0 投票する
4 に答える
1936 参照

php - ファイルを削除してからディレクトリを削除する

私はこれまでのところこれを持っています:

すべてのファイルを削除します。これは素晴らしいことです。ただし、ディレクトリは削除されません。これの何が問題なのですか?