Linuxシステムを使ってコードを書く過程で、メモリリークの問題があるかもしれません。それで、ユーザはメモリをチェックすることを学ぶべきです、それでLinuxはどのようにメモリをチェックしますか?一般的にいくつかのツールを使用して、この記事はLinuxシステムでメモリをチェックするためにvalgrindを使う方法を紹介します。
の#include "STDLIB.H"
の#include "stdio.hの"
の#include「文字列:
のコードを見てみましょう.h》
静的void mem_leak1(void)
{
char * p = malloc(1);
}
静的void mem_leak2(void)
{
ファイル* fp = fopen(< test.txt'、' w');
}
static void mem_overrun1(void)
{
char * p = malloc(1);
*(short *)p = 2;
Free(p);
}
static void mem_overrun2(void)
{
char配列[5];
strcpy (array、' hello');
}
static void mem_double_free(void)
{
char * p = malloc(1);
free(p);
free(p);
}
static void mem_use_wild_pointer(void)
{
char * p =(void *)0x80184800;
* p = 1;
}
static void mem_free_wild_pointer(void)
{
char * p;
free(p);
}
int main()
{
mem_leak1();
mem_leak2();
mem_overrun1();
mem_overrun2();
mem_double_free();
//mem_use_wild_pointer();
mem_free_wild_pointer();
return 0;
}
一般的なメモリの問題:
1.動的メモリリーク;
2.リソースリーク、ここでは例としてファイルディスクリプタがあります;
3.動的メモリ範囲外;
4.配列メモリ範囲外;
5.動的メモリダブルフリー、
6.ワイルドポインタ、つまり未初期化ポインタを使用します;
7.ワイルドポインタ、つまり未初期化ポインタを解放します。
サンプルコードが単純すぎる場合、6番目のケースになります。ワイルドポインタは直接クラッシュにつながるので、メインでは、呼び出しは実際のサンプルコードではありません。 valgrindは実行されたコードしか検出できないため、6番目のエラー条件は後のレポートでは報告されません。ただし、大規模プロジェクトでは、プログラムをクラッシュさせずにワイルドポインタを使用することが可能です。また、上記の7つのケースのうち、厳密に言えば1つのカテゴリに分類できるケースもあります。前のページ12次のページ合計2ページ
restartコマンドを使用する方法?Linuxシステム操作の場合、ハードウェアの交換、システム構成の変更、クラッシュなどの状況が発生した場合は、コンピュータを再起動し、さまざまな状況でシステムを再起
Linux HillにPostgreSQLデータベースをインストールしますが、ローカルアクセスのみ、リモートアクセスを実現する場合は手動で設定する必要があります。次の小シリーズではLinuxのPost
Linuxユーザーはスーパーバイザースーパーバイザーに不慣れなので、スーパーバイザーを通してコンピューター上のすべてのファイル、ディレクトリ、ファイルを管理することができます今日は、スーパーバイザーのプロセス管理について紹介します。
関数
利点
構成が簡単
である
経営正確
プロセスグループ管理
RPC
停止する 再起動再起動プロセスの起動とシャットダウン 上記はLinuxシステムのスーパーバイザープロセス管理ですスーパーバイザーに興味のあるユーザーは、自分のコンピューターでこのプロセス管理を試すこと
を表示する方法システム内のシェルは、さまざまなコマンドを実行できるプログラミング言語です。次の小シリーズでは、Linuxで現在のシェルを表示する方法を紹介します。理解しましょう。 現在のプロセスで