C ++
 Computer >> コンピューター >  >> プログラミング >> C ++

Cの自己破壊コード


ここでは、Cで自己破壊コードを作成する方法を説明します。自己破壊コードは基本的にコードを実行し、実行後に実行可能ファイルを削除します。

このタスクは非常に簡単です。実行可能ファイル名を取得して削除する必要があります。コマンドライン引数を使用できます。 argv[0]は実行可能ファイル名を保持します。次に、remove()関数を使用して削除できます。

プログラムでは、そのファイルを削除した後、1行が印刷されていることがわかります。では、現在のファイルが存在しないときに次の行がどのように実行されるのかという疑問が生じますか?

実際には、変換されたコード全体が実行前にプライマリメモリにコピーされます。実行中のファイルの内容がコピーされます。それ自体は使用されません。したがって、プライマリメモリから次の行が出力されます。

#include<stdio.h>
int main(int c, char *argv[]) {
   printf("After completing this, the file will be removed\n");
   remove(argv[0]); //remove the argv[0] this is the name of the executable
   printf("Removed\n");
   return 0;
}

出力

After completing this, the file will be removed
Removed

  1. 修正:DllUnregisterServerがエラーコード0x80040200で失敗した

    一部のWindowsユーザーは、「DllUnregisterServerがエラーコード0x80040200で失敗しました」に遭遇しています。 DLLファイルを登録または登録解除しようとしたとき、またはDLLファイルを自動的に登録しようとするアプリケーションをインストールしようとしたとき。この問題は、Windows 7、Windows 8.1、およびWindows10で発生することが報告されています。 この特定のエラーが発生する最も一般的な原因は、権限の問題です。それを処理するには、管理者アクセスでDLLファイルを登録または登録解除する必要があります。 ただし、プログラムのインストール時に

  2. ファイルのコピー中に「エラーコード:0x80070052」を修正するにはどうすればよいですか?

    一部のユーザーは、 0x80070052(ディレクトリまたはファイルを作成できません)に遭遇しています。 フラッシュドライブや外付けHDDなどのリムーバブルメディアにファイルをコピーしようとしたとき。ほとんどの場合、この問題は写真やビデオ(特に、名前が20文字を超えるもの)で発生することが報告されています。 リムーバブルドライブに古いファイルシステム(FAT16など)を使用している場合、ルートフォルダはルートフォルダ上の限られた数のファイルしかサポートできません。この場合、ファイルをサブフォルダーに貼り付けることで、エラーを完全に回避できます。ただし、古いシステムファイル形式を使用している