C言語に関するtogeのブックマーク (4)

  • straceがどうやってシステムコールの情報を取得しているか - ローファイ日記

    興味があって調べていたら、少しだけ分かったのでまとめておきます。当然間違った箇所もある、あと考慮が漏れている箇所もあるかと思いますのでツッコミをお願いします… ptrace(2) システムコール strace の核となるシステムコールは ptrace(2) である。ptrace(2)を用いることで、あるプロセスを別のプロセスから監視し、シグナルごとに停止してレジスタやメモリの状態を観察したり変更したりできる。gdbのようなデバッガのブレークポイント、あるいはまさにstraceのような目的で利用される。 大まかな利用方法としては、親プロセスの ptrace(PTRACE_ATTACH, pid, ...) (または子プロセスの ptrace(PTRACE_TRACEME, 0...))によりトレースが開始し、wait()などで停止を待ってから様々な設定を親から送り、 ptrace(PTRAC

    straceがどうやってシステムコールの情報を取得しているか - ローファイ日記
  • How do you build older gcc versions? Errors about crti.o not being found

    How can I build an older gcc (specifically, 4.5.2) on Ubuntu 11.10 and avoid errors about "/usr/bin/ld: cannot find crti.o: No such file or directory"? I've done a bit of digging and found several similar items, but none that actually resolve my issue: I've verified all my packages (libc6-dev and the like) are re-installed per this question I've verified crti.o exists in /usr/lib32 and /usr/lib/x8

    How do you build older gcc versions? Errors about crti.o not being found
    toge
    toge 2011/11/22
    64bit環境でビルドに失敗する場合の対処方法
  • ひどい名前 - 忘れたときに備えた記録(2009-06-08)

    #include <math.h> double y0; int main() { return 0; } このソースをコンパイルすると test.c:3: error: ‘y0’ redeclared as different kind of symbol というエラーが出てしまいます(Ubuntu 9.04と、少し古めのFedoraで確認)。 で、この原因はと言うと、math.hの中でincludeされているファイルに bits/mathcalls.h というものがあるのですが、そこに __MATHCALL (j0,, (_Mdouble_)); __MATHCALL (j1,, (_Mdouble_)); __MATHCALL (jn,, (int, _Mdouble_)); __MATHCALL (y0,, (_Mdouble_)); __MATHCALL (y1,, (_Mdou

    toge
    toge 2009/08/07
    これはひどい!
  • FFmpeg APIで、さまざまな動画を操る - 前編:CodeZine

    はじめに こんにちわ、hirataraです。 近年、YouTubeやニコニコ動画に代表される動画共有サービスの需要が、急速に高まっています。そのような状況で、オープンソースの動画読み書きソフトウェア「FFmpeg」が、にわかに注目を集めています。 稿では、そのFFmpegの共有ライブラリを直接呼び出して、C言語から動画を扱う方法を紹介します。FFmpegにはffmpegという便利なコマンドがついていますので、ほとんどの場合はこのコマンドを利用します。しかし、FFmpegを共有ライブラリ付きでコンパイルすると、自分の作ったプログラムから直接FFmpegAPIを利用することが可能になります。 FFmpegの共有ライブラリを利用すると、動画をファイルからデコードして再生をしたり、新たな動画を作成して特定フォーマットでエンコードし、ファイルに保存したりすることができます。対応codecがたくさ

  • 1