タグ

C言語に関するaritekuのブックマーク (16)

  • OMake つかったらC言語でプログラム書く手間がバカみたいに減った - 日記を書く[・ _ゝ・]はやみずさん

    OMakeすごい。OMakeはマジですごい。 OMakeはGNU makeの代替品みたいなものなんだけど、正直なところこのツールの強力さはGNU makeと比べると失礼なくらいすごい。これのおかげで、「コード修正→ビルド→デバッグ→コード修正→・・・」のループの、ビルドにあたる作業がほぼ消え去った。 ファイルの依存関係の解析がとにかくすごい。よくあるユースケースなんかの場合、最小限の手間でほぼ完璧に依存関係を網羅して、よしなにビルドしてくれる。 とりあえず、はやみずが実際に使ってみたケースを例にとってそのすごさの一端を紹介しようと思う。 case study 論より証拠ということで、自分が OMake を試しにつかってみたケースを紹介する。C言語でスタティックライブラリを作っていて、それに加えて簡単なテストプログラムを書いている。 /include/ 以下にヘッダファイルが全部ある /sr

    OMake つかったらC言語でプログラム書く手間がバカみたいに減った - 日記を書く[・ _ゝ・]はやみずさん
  • C/C++セキュアコーディング入門一覧

    CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

    C/C++セキュアコーディング入門一覧
  • while(1){LOVE++;}を最適化 - duost

    最近ツイッターで "while(1){LOVE++}"と書き込まれてる指輪があって、 そのソースは最適化でLOVEが消えてただの無限ループになる云々という話があったので検証。 http://togetter.com/li/144840 用意したソースはこちら。 int main() { int LOVE = 0; while(1){LOVE++;} } それじゃアセンブラを見てみましょ。 まずは最適化抜き。 gcc -O0 -s hoge.c .file "hoge.c" .text .globl main .type main, @function main: pushl %ebp movl %esp, %ebp subl $16, %esp movl $0, -4(%ebp) ;LOVE=0 .L2: addl $1, -4(%ebp) ;LOVE++ jmp .L2 ;JUMP TO

    while(1){LOVE++;}を最適化 - duost
  • acceptシステムコール

    ariteku
    ariteku 2011/05/19
    Acceptシステムコール
  • sockaddr構造体

  • サービス終了のお知らせ

    サービス終了のお知らせ いつもYahoo! JAPANのサービスをご利用いただき誠にありがとうございます。 お客様がアクセスされたサービスは日までにサービスを終了いたしました。 今後ともYahoo! JAPANのサービスをご愛顧くださいますよう、よろしくお願いいたします。

  • C++, pthread: スレッドの同期と排他制御 – MutexとCondition Variable

    以前、Boostライブラリを用いたスレッドの同期と排他制御を取り上げましたが、今記事はそれのpthreadバージョンです(似せただけです)。pthreadライブラリ自体はC言語から扱えますが、今回はstaticなメンバ関数を別スレッドで動かす練習も兼ねてC++で書いてみました。 ソースコード #include <iostream> using namespace std; #include <stdio.h> #include <pthread.h> #define BUFFER_NUM 100 #define WAIT_NUM 1000000 #define LOOP_NUM 100 class HandleData { public: HandleData() : index_(0), channel_array_len_(sizeof(channel_array_)/sizeof(c

    C++, pthread: スレッドの同期と排他制御 – MutexとCondition Variable
  • 3バイト文字(UTF-8)をprintfで等幅表示をするには?

    64BIT環境のLINUX、gcc で開発をしております。 表題の件ですが、UTF-8 は3バイト文字が多いため、strlenの戻り値と、printf で表示したときの画面上の桁数が一致しません。 そのため、下記のようなプログラムを実行すると >> int main() { char* s = "あいうえお"; printf("%20s\n", s); return 0; } ... あいうえお << と、画面上で15桁で表示されます。 つまり、文字列中のUTF-8の文字数分、表示幅がフィールド幅より短くなるわけです。 現状、文字列中の UTF-8文字の数を数える関数を作成し、以下のように対処しております。 >> int strUTF8Count(const char* s) { int notAsciiCount = 0; while(*s++) { if (!isascii(*s))

    3バイト文字(UTF-8)をprintfで等幅表示をするには?
  • UTF-8 バリエーション

  • 文字列の分割(UTF8)

  • ASCIIコード表

    ASCIIコード表 10進16進文字 0 0x00 NUL(null文字) 1 0x01 SOH(ヘッダ開始) 2 0x02 STX(テキスト開始) 3 0x03 ETX(テキスト終了) 4 0x04 EOT(転送終了) 5 0x05 ENQ(照会) 6 0x06 ACK(受信OK) 7 0x07 BEL(警告) 8 0x08 BS(後退) 9 0x09 HT(水平タブ) 10 0x0a LF(改行) 11 0x0b VT(垂直タブ) 12 0x0c FF(改頁) 13 0x0d CR(復帰) 14 0x0e SO(シフトアウト) 15 0x0f SI(シフトイン) 16 0x10 DLE(データリンクエスケープ) 17 0x11 DC1(装置制御1) 18 0x12 DC2(装置制御2) 19 0x13 DC3(装置制御3) 20 0x14 DC4(装置制御4) 21 0x15 NAK(

  • サービス終了のお知らせ

    サービス終了のお知らせ いつもYahoo! JAPANのサービスをご利用いただき誠にありがとうございます。 お客様がアクセスされたサービスは日までにサービスを終了いたしました。 今後ともYahoo! JAPANのサービスをご愛顧くださいますよう、よろしくお願いいたします。

  • C++と Pthreads でミニマルなHTTPサーバを書く - いやなブログ

    C++と Pthreads でミニマルなHTTPサーバを書く 『UNIXネットワークプログラミング』を読んでいると、自分でも何かネットワーク系の小さなプログラムを書いてみたくなりました。そこで、ミニマルなHTTPサーバを C++と Pthreads で書いてみました。 同じ著者の「詳解UNIXプログラミング」もそうだったように、今回のもほとんどすべてのページに、重要なことが書かれています(最後のほうのXTIの部分は例外かもしれませんが)。 たとえば、27章ではネットワークサーバの実装として、次の設計方針がそれぞれ検討され、実際のコード付きで解説されています。 クライアントごとに fork 事前に fork - 各プロセスで accept 事前に fork - ファイルロックで accept を保護 事前に fork - Mutex ロックで accept を保護 (PTHREAD_PRO

  • とある技術の私的目録 - GCCエラー

  • C言語の研究・演習編1

    <演習編> C言語の研究・演習編1 前回まで一生懸命C言語の文法や標準ライブラリを学んできた。長い道のりであった.... これからは、プログラムを作成する上で知っておかねばならないアルゴリズムについて、例題を多用しながら研究して行こう。 第1章 文字列の操作 C言語では文字列の取り扱いは重要なテーマである。 これは標準ライブラリ<string.h>がかなり充実していることからもうかがい知ることができるだろう。 それでも、やはり荒削りなC言語である。BASICなどのように、便利で多種多彩な関数はない。 必要な関数は標準ライブラリをもとにして自分で作って行くしかない。それがまた楽しいところでもある。 1 文字列の探索 たとえば、長い文字列から特定の文字列を検索するにはどうしたらいいだろう。標準関数strcmpやstrncmpはそのままでは使えない。 長い文字列a[n]から文字列b[m]を探す場

  • @camelmasaの開発日記

    カントリーマアム 不二家 カントリーマアム(バニラ&ココア) 20枚 出版社/メーカー: 不二家 発売日: 2019/01/29 メディア: 品&飲料 この商品を含むブログを見る https://amzn.to/31UHgHz 異体字が名前に含まれてしまっていて、困るときに使う。 https://github.com/camelmasa/itaiji [追記] 現段階では前職に迷惑がかかる恐れがあったので非公開にしました。 Starをして下さったみなさんありがとうございました。 全く別のプロダクトになったと思った時再度公開したいと思います。 [以下は元の記事] 久しぶりに記事を書いたので現状を報告すると、先日の1月10日付でIncrementsを退社しました。 今はインディーズゲームして遊んでます。PZとFTL楽しいです。 そんなことはどうでも良くて。 先日から数人で作業をするため、Pi

    @camelmasaの開発日記
  • 1