タグ

cと開発に関するsyan0のブックマーク (8)

  • 低レイヤを知りたい人のための Cコンパイラ作成入門

    はじめに このオンラインブックは執筆中です。完成版ではありません。フィードバックフォーム このには一冊のに盛り込むにはやや欲張りな内容を詰め込みました。書では、C言語で書かれたソースコードをアセンブリ言語に変換するプログラム、つまりCコンパイラを作成します。コンパイラそのものもCを使って開発します。当面の目標はセルフホスト、すなわち自作コンパイラでそれ自身のソースコードをコンパイルできるようにすることです。 このでは、コンパイラの説明の難易度が急に上がりすぎないように、様々なトピックを書全体を通じて次第に掘り下げていくという形で説明することにしました。その理由は次のとおりです。 コンパイラは、構文解析、中間パス、コード生成といった複数のステージに概念的に分割することができます。よくある教科書的アプローチでは、それぞれのトピックについて章を立てて解説を行うことになりますが、そのよう

  • Android NDKで使えないシステムコール・ライブラリ関数一覧 : DSAS開発者の部屋

    Android NDKでCのコードを書いていると、普段のCプログラミングでは悩まないことで悩むことがあります。たとえば、AndroidのlibcはGoogle製でPOSIXに準拠していません。他のUnix系環境であれば必ず実装されているライブラリ関数が存在しないなどの罠があるため、メジャーなツールをビルドするのにもconfigure;makeが素直に通らなかったりします。 それだけでなく、Android NDKが提供する開発環境にも問題があります。特に、NDKで配られているヘッダファイルとビルド用の共有ライブラリで対応が取れていないのは頭痛のタネです。どういうことかというと、ヘッダファイルに定義されているシステムコールを使おうと思ったらリンカエラーが出ることがあります。 また、システムコールの一部については、カーネルレベルでは正しく実装されているもののlibcにインターフェース実装がなく、

    Android NDKで使えないシステムコール・ライブラリ関数一覧 : DSAS開発者の部屋
  • MPMediaItemPropertyPersistentID検索でハマったこと - chobikko

    開発, iPhone, Objectiv-cこんなふうにPersistentIDをNSStringで保存して //再生中の曲のPersistentIDを取得する MPMediaItem *curItem = [musicPlayer nowPlayingItem]; NSString *s_now_pid = [[NSString alloc] initWithFormat:@"%@",[curItem valueForProperty: MPMediaItemPropertyPersistentID]]; こんなふうにあとで、PersistentIDで検索しようとしたら上手く行かない MPMediaQuery *query = [MPMediaQuery songsQuery]; MPMediaPropertyPredicate * pred; pred = [MPMediaProper

  • MacのターミナルでC言語の練習環境を用意してみたよ

    2012.04.25 追記 Xcodeをインストールしているのに、gccコマンドを実行しても「コマンドが見つからない」と出てしまうというご質問を頂きました。 調べてみたところ、どうやら2012年02月公開のXcode4.3 for Lion ではコマンドラインツールが自動インストールされないようです。 Xcode 4.3でコマンドラインツールをインストールする手順 – FAMLog ですから、Xcode4.3 for Lion でgccコマンドが効かない!という方は、Xcodeから下記手順でコマンドラインツールをインストールしてみて下さい。 Xcode4.3 for Lion はターミナルでgccコマンドが効かない!? | 極上の人生 [追記ここまで] きっかけはPosterousでみかけた記事 きっかけはPosterousでみかけたこの記事。 (※ 2014.04.05現在、下記の「日刊

  • How to Write a Video Player in Less Than 1000 Lines

    An ffmpeg and SDL Tutorialor How to Write a Video Player in Less Than 1000 Lines UPDATE: This tutorial is up to date as of February 2015. ffmpeg is a wonderful library for creating video applications or even general purpose utilities. ffmpeg takes care of all the hard work of video processing by doing all the decoding, encoding, muxing and demuxing for you. This can make media applications much si

  • libcurlをiPhoneアプリからつかう方法 (ついでにopensslも) - KAYAC engineers' blog

    iPhoneアプリから自己証明書の https サーバーに接続しようと思った場合、どうするのがいいでしょう。 普通に Objective-C の NSURLConnection を使用すると証明書の検証エラーになってしまいます。少し検索すると非公開APIを使用して回避する方法もあるようです。(NSURLConnection +setAllowsAnyHTTPSCertificate:forHost) Cocoa アプリだとこの方法で良いかもしれません。しかし iPhone では審査ではじかれること請け合いです。と言うかはじかれました。 そこで libcurl をつかって C の世界で HTTP 接続をしてしまえばリジェクトしようがないだろうということでやってみたときの記録です。 前提 以後の作業はすべて iPhone SDK をインストールした OSX 上で行っています。 openssl

    libcurlをiPhoneアプリからつかう方法 (ついでにopensslも) - KAYAC engineers' blog
  • AndroidでC言語のライブラリのビルド方法のまとめ - yukobaのブログ

    AndroidLinux の一種でもあり、ARM で動く Linux 向けのC言語で書かれたライブラリの多くが動きます。(多少違うので、動かない場合もあり)。ただし、ビルド方法が暗黙の了解事項になってたりして、Android NDK にちゃんと書かれていなかったりするので、ここにまとめます! 以下、架空の libhoge をビルドすることとします。 ビルド対象は一般的に静的ライブラリ (.a) ファイルにしておくと吉です。自分で使う際は、自分の Android.mk に以下の物を追加します。 LOCAL_CFLAGS に -Ihoge-1.0/include みたいのを追加 LOCAL_LDLIBS に -Lhoge-1.0-android-build/$(TARGET_ARCH_ABI) と -l hoge を追加 ライブラリをビルドしてできた libhoge.a はこのフォルダに

    AndroidでC言語のライブラリのビルド方法のまとめ - yukobaのブログ
  • JPCERT C Secure Coding Standard 日本語版 - プリプロセッサ (PRE) (#c01)

    CERT C コーディングスタンダード 日語翻訳版コーディングスタンダードのご利用条件/著作権・免責事項 00. はじめに 01. プリプロセッサ (PRE) 02. 宣言と初期化 (DCL) 03. 式 (EXP) 04. 整数 (INT) 05. 浮動小数点 (FLP) 06. 配列 (ARR) 07. 文字と文字列 (STR) 08. メモリ管理 (MEM) 09. 入出力 (FIO) 10. 環境 (ENV) 11. シグナル (SIG) 12. エラー処理 (ERR) 13. Application Programming Interface (API) 14. 並行性 (CON) 49. 雑則 (MSC) 50. POSIX (POS) AA. 参考情報 BB. Definitions CC. 未定義の動作 DD. 未規定の動作 XX. お問い合わせ 00はじめに このページ

    JPCERT C Secure Coding Standard 日本語版 - プリプロセッサ (PRE) (#c01)
  • 1