タグ

ブックマーク / aki-yam.hatenablog.com (4)

  • あるシンボルが どのオブジェクトファイル/共有オブジェクトに含まれているか検索するスクリプト - akihiko’s tech note

    プログラミングしていると,あるシンボル(変数名,関数名,クラス名,etc.)がどのオブジェクトファイル(or アーカイブファイル)や共有ライブラリで定義されているか,調べたいことがある(どのファイルをリンクすればいいかわからないときなど).通常はシンボル名でググればよろしい.だが,稀に,ググるのでは解決できないことがある.そのような場合の対処法として,無理矢理 /usr/lib や /lib にあるライブラリファイルを検索する方法を紹介する. ライブラリの種類 予備知識なので,読み飛ばしても可. プログラムをコンパイルして生成されたオブジェクトファイル (*.o) をコマンド ar でアーカイブすると,アーカイブファイル (*.a) ができる.これが,静的ライブラリ (static library).実行ファイルの生成時に静的にリンクされるため,実行時にはアーカイブファイルは不要. 一方,

    あるシンボルが どのオブジェクトファイル/共有オブジェクトに含まれているか検索するスクリプト - akihiko’s tech note
  • コマンドラインでCSVなどのデータを整形して見るには - akihiko’s tech note

    column コマンドと less を組み合わせれば,CSVなどのデータファイルはすごく見やすくなる. ソース:linux - Command line CSV viewer? - Stack Overflow column -s, -t < INPUT.csv | less -#2 -N -S column のオプション: -s, : 区切り文字をコンマに変更(デフォルトはスペース). -t : 列ごとに並ぶように整形する.列が等幅になるようにスペースを挿入. less のオプション: -#2 : 左右のカーソルキーで画面をスクロールする量.デフォルトだと画面表示の半分ごとにスクロールされるので,閲覧しにくい. -N : 行番号を表示. -S : 折り返しをしない. よく使う場合はエイリアスを設定しておけば便利. tcsh の例: alias tless 'column -t < \!*

    コマンドラインでCSVなどのデータを整形して見るには - akihiko’s tech note
  • Git のリモートリポジトリから HTTP で pull するためのメモ - akihiko’s tech note

    リモートサーバにある Git リポジトリから HTTP (WebDAV) 経由で pull したり clone を作ったりする場合の注意点について,おぼえがき. 注意: Git は最近使い始めたばかりなので,正確でないかもしれません. 一般的な前準備(参考程度に) リモートサーバ(apache2/Debian を仮定)で WebDAV を有効にして,リポジトリのパスを /git にエイリアスし /git の認証設定を行う設定ファイルを Alias /git /home/akihiko/git <Location /git> Options Indexes # DAV on AuthType Basic AuthName "Git repository" AuthUserFile 適当な .htpasswd ファイルのパス Require valid-user </Location>こんな感

    Git のリモートリポジトリから HTTP で pull するためのメモ - akihiko’s tech note
  • メモリの二重解放回避テク - akihiko’s tech note

    メモリの二重解放とは, new などで確保したメモリ領域(ヒープ領域)を2回 delete などで解放することを言う. new と delete をきちんと対応させて書いていないときに起こる問題だ.特にクラスのメンバに動的確保したメモリへのポインタを含む場合にやってしまいがちである.ここでは二重解放によって発生する問題を解説する. 結論から言うと,メモリを解放した後 (delete p1;),ほかの用途でメモリを確保し (p2=new T;),たまたまそれが解放したメモリと同じアドレスに割り当てられてしまった場合 (p1==p2),最初のメモリを二重解放すると (delete p1;),新しく確保したメモリ (p2) が解放されてしまう.この結果,新しく確保したメモリにアクセスすると値が書き換えられていたり,セグメンテーションフォルトが発生する場合がある.プログラマはまず,新しく確保したメ

    メモリの二重解放回避テク - akihiko’s tech note
  • 1