タグ

ブックマーク / ez-net.jp (3)

  • 右辺値参照とムーブコンストラクタの使い方 - C++ プログラミング

    C++ ではお馴染みの代入演算子ですけど、通常は、左辺の値を右辺の値で置き換えるという動作をします。 従来からの C++ のクラスの代入演算子では、左辺のクラスが右辺の値を受け取って処理をするような定義になっています。 右辺の値は書き換えられないので、たとえば右辺の値を左辺が引き継いで使用するとき、右辺の値がポインタだったりする場合には、大抵はどんなときでも、右辺の値を新しい値としてまるごと複製しなければいけなくなります。 このとき、もしもそのまま右辺のポインタを左辺に設定してしまうと、左辺と右辺の両方で同じポインタを使ってしまうため、たとえば左辺と右辺のどちらかが解放されるときに、もう片方でも使用中のポインタが示すメモリを開放してしまう恐れがあります。 そのため、ポインタが指す先のメモリを丸ごとコピーして新しい値として設定する必要があるのですが、それにかかるコストが大きい場合に問題になる

  • 変数の値に含まれる変数名を再展開する - Linux シェルスクリプトプログラミング

    Linux シェルスクリプトで変数に値を代入するときに、次のようにすることで、値に含まれる変数名を展開することができます。 たとえばこのようにすることで、変数 VALUE には、変数 NAME に設定されている値が展開されることになります。 ここで、変数 VALUE の値が例えば "${FIRSTNAME} ${LASTNAME}" というように、別の変数名で構成されていたとします。 このような時、これらの変数をさらに展開したい場合には、次のように eval コマンドと echo コマンドを組み合わせて使用します。

  • CentOS 5.3 で iSCSI ターゲットを構築する

    iSCSI とは、TCP/IP の技術を使用して SCSI プロトコルを転送することで、ネットワーク上の別のシステムに搭載されているハードディスクを接続するための仕組みです。 ハードディスクを提供する側を iSCSI ターゲット、それを利用する側を iSCSI イニシエーターと呼びます。 iSCSI は共有フォルダとは違いますので、設定したターゲットディスクは、イニシエーターがマウントすると、まるで物理ドライブが増設されたかのように、初期化等の設定を行うことになるのも面白いところです。 その後のフォーマットやアクセス権限の設定等は、マウントした OS 側で設定を行うので、何かの制約を受けることなくその環境に適した制御を普段通りに行えるのも、利点の一つではないでしょうか。 今回は CentOS 5.3 上に iSCSI ターゲットを構築して、他の PC から接続できるようにしてみようと思いま

  • 1