タグ

linuxに関するtaketomatoのブックマーク (3)

  • 68user's page

    UNIX/Linux の部屋 に、bash の内部コマンド select コマンド を追加しました。メニュー形式の選択肢を提示し、ユーザに選ばせることができるコマンドです。

  • 入力と出力 | UNIX & Linux コマンド・シェルスクリプト リファレンス

    入力と出力 リダイレクションとパイプ コマンドの実行結果は通常、標準出力であるディスプレイに出力される。この実行結果はリダイレクション(>、>>)やパイプ(|)を使用することにより、ディスプレイではなくテキストファイルやコマンドに対して出力するように切り替えることができる。 また、リダイレクションはコマンドの出力先をテキストファイルに切り替える以外にも、これとは逆にコマンドへの入力元をテキストファイルに切り替えることもできる。 なお、リダイレクションとパイプは次のように使い分ける。 リダイレクション データを渡す対象がファイルである場合はリダイレクションを使用する。 パイプ データを渡す対象がコマンドである場合はパイプを使用する。 リダイレクション [>, », <] コマンドの出力を file へ上書きする → コマンドの実行結果の出力先を、ディスプレイからファイルへ切り替えたい場合は、

    入力と出力 | UNIX & Linux コマンド・シェルスクリプト リファレンス
  • スタックプロテクターは alloca 割り当てを使うプログラムも守ってくれるか? - IKB: 雑記帳

    先だって同僚からそんな疑問を受け、気になっていたので調べた。結論から言うと、守ってくれる。 そもそもスタックプロテクターは、関数呼び出し時にスタックフレーム内の戻りアドレスの直上にカナリア変数を置き、呼び出し元に返る前にカナリア変数がオーバーフローによって破壊されていないことを確かめるという実装だから(つまりカナリア変数が壊れていたら戻りアドレスも壊されているだろうから、そこへ ret してはいけないと判断する)、スタックが可変長だろうと関係なく守ってくれるっていうわけ。 というわけでサンプルコード。 /* stack-protector.c */ #include <stdlib.h> /* for alloca */ #include <memory.h> /* for memset */ void f() { memset(alloca(1), 0x90, 56); } int ma

    スタックプロテクターは alloca 割り当てを使うプログラムも守ってくれるか? - IKB: 雑記帳
  • 1