タグ

ブックマーク / wiki.bit-hive.com (2)

  • 標準エラーのリダイレクト - Linuxの備忘録とか・・・(目次へ)

    標準出力と標準エラーをファイルに書き出す場合、以下のように指定します。 [root@localhost ]# cat aaa >log 2>&1 [root@localhost ]# cat log cat: aaa: そのようなファイルやディレクトリはありません これを下記のように指定すると上手くいきません。 [root@localhost ]# cat aaa 2>&1 >log cat: aaa: そのようなファイルやディレクトリはありません 標準エラーを標準出力にリダイレクトして、それをlogファイルにリダイレクトするという流れから、下記の方が自然に思えるのですが・・・。 この誤解は、シェルでのリダイレクトの処理は、ファイルディスクリプタの差し替えのみにもかかわらず、出力までの流れとして解釈してしまうところにあるのではと思います。 2>&1はシェルでdup2(1,2)をコールします

    wushi
    wushi 2019/07/25
    『2>&1はシェルでdup2(1,2)をコールします』すごく分かりやすい
  • ヒープ領域 - Linuxの備忘録とか・・・(目次へ)

    ヒープは空いているメモリー空間から動的に獲得するものでが、ユーザメモリー空間に空きが有る限り獲得できるものでありません。ユーザプロセスで使用するmalloc関数は、glibcで実装されており、すなわちユーザプロセスとして実装されています。ヒープ処理としてカーネルはそのヒープと使えるメモリー空間を提供するのみで、ヒープ領域を設定するシステムコールはbrk関数です。 まず、min_brkにヒープ開始アドレスをセットしています。CONFIG_COMPAT_BRKでそのアドレスをmm->end_code(実行コードの終端アドレス)か、mm->start_brk(ヒープ開始アドレス)としているようです。そして拡張するアドレスがそれより小さければエラーです。 rlim = current->signal->rlim[RLIMIT_DATA].rlim_curで、プロセスのデータのリソースの拡張が可能で

    wushi
    wushi 2015/02/05
    『ヒープというのは空いているメモリー空間からでなく、mm->start_brkからmm->brkの連続する範囲で確保される』
  • 1