C

Rustのプロジェクトの中でCを使う

この記事ではRustのビルドシステムであるCargoを使って、Cのコードをビルドし、それをRustのコードから呼び出す方法について紹介します。 ※記事作成時のRustのバージョンはrustc 1.33.0です。 この記事で取り扱うRustの知識とクレートは次の通りです。 build…

ctagsでCとアセンブラ間のタグジャンプができるようにする

ctags使っていて、Cとアセンブラでお互いにタグジャンプできないのが不便だったので、やっつけでtagsファイルを書き換えるスクリプト書いた。 Gist: ryochack / ctags_ac.rb アセンブラからCの関数を呼ぶ時には、関数名の先頭に"_"がつく。 そのため、tagsフ…

Go言語でmmapシステムコールを使ったファイル読み込みの高速化検討とC言語のコンパイラの話

長いタイトル…。 こないだ書いたgorepっていう検索ツール、もうちょっと速くしたいなと思ってファイル読み込みの部分をmmap()で置き換える検討中。(ちょっぱやのagもmmap()を使っている) mmap()での高速化確認用にCとGoで簡単なコード書いて実験していたら、…

C言語とGo言語で標準出力が端末を参照しているかどうかを判定する

標準出力のディスクリプタを取得して、それが端末を参照しているかどうかを判定する。 使いどころは端末に出力する時と、ファイルにリダイレクト出力する時とで表示の仕方を変えたいとき。 例えば、以下のページの方法でターミナルの文字をカラーにできる。 …