5

remLinux での動作に興味がCあり、ファイルを削除できる独自のコードを作成しようとしましたが、答えを検索したところ、remove()システム コールを使用しているプログラムしか取得できませんでした。

独自のコードを作成して仕事をするなど、システムコールを使用せずにそれを行う他の方法はありますか?

Cファイリングを介してファイルをコピーできましたが、Cを介してファイルを削除する解決策が見つかりません.

4

5 に答える 5

11
int unlink (const char *filename)

unlink 関数は、ファイル名 filename を削除します。関数 unlink は、ヘッダー ファイル unistd.h で宣言されています。この関数は、正常終了すると 0 を返し、エラーの場合は -1 を返します。

于 2013-05-15T12:06:33.433 に答える
6

ファイルを削除したい場合は、

remove

関数。標準ライブラリの舞台裏を見たい場合は、glibc のソース (例) をダウンロードして、実装を確認できます。Linux OS で実際に INTERNAL_SYSCALL が実行されることがわかります。

result = INTERNAL_SYSCALL (unlink, err, 1, file);

(debian eglibc-2.15 パッケージの /sysdeps/unix/sysv/linux/unlinkat.c から)

さらに先に進み、その syscall を使用しない場合でも、独自のファイル システム ロジックを実装する必要があります。これは、ファイル システム syscall が異なるファイル システムに抽象化レイヤーを提供するだけだからです。

于 2013-05-15T13:43:10.560 に答える