タグ

Cとnetaに関するyokochieのブックマーク (6)

  • 第21回IOCCC入賞作品「踊る人形」 - cuspy diary

    第21回IOCCCで銀賞を頂きました。とても光栄です。 http://www.ioccc.org/2012/whowon.html 自分で書いたコードですが、もう既に理解できなくなってく来ているので早うちに解説を残しておきます。 作品のテーマは最も難解な部類に入るファイルフォーマットであるPDFと、あえて難解に書いたC言語のコラボレーションです。 このプログラムはテキスト文字列を入力として受け取り、難読化したPDFファイルを出力します。 この難読化手法は、有名な推理小説「踊る人形」に登場する単一換字式暗号です。 たとえば、 % gcc -o hamano hamano.c % echo 'Hello World!' | ./hamano > hello.pdf と実行すると以下の様なPDFを出力します。 このPDFファイルは、Adobe Acrobat Readerやevince, Xpd

    yokochie
    yokochie 2012/10/22
    ソースコードみたら噴いたwww
  • 史上最高に愚かしいCのバグとは何か - YAMDAS現更新履歴

    The most stupid C bug ever | elpauer 先日は徳丸浩さんによる PHP5.3.7 の crypt 関数におけるバグの解説を読み、世界的に有名なオープンソースソフトウェアでもこんな初歩的なミスをやらかすのかとすごく親近感が湧いてしまったが、Pau Garcia Quiles が語るこれまでで最も愚かしい C のバグとは何か? 彼はテンポラリファイルを tmpfile() で作る Unix アプリケーションの移植をやっていた。 else if (code == 200) { // Downloading whole file /* Write new file (plus allow reading once we finish) */ g = fname ? fopen(fname, "w+") : tmpfile(); } マイクロソフトの tmpfile

    史上最高に愚かしいCのバグとは何か - YAMDAS現更新履歴
    yokochie
    yokochie 2011/08/29
    バックスラッシュの後にスペースがあるだけでも挙動が変わるとか恐ろしい
  • 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
  • コンパイラで音は変わるか?: Music TO GO!

    MacのプレーヤーソフトであるAudirvanaのプログラマDamienさんがおもしろい試みをしています。 それは異なるコンパイラで作成された3つのバージョンをユーザーがブラインドで聞き比べて投票し、次の開発に反映するというものです。 USBケーブルで音が変わるか?なんていうのはもう当たり前、ミュージックプレーヤーソフトで音が変わるか?というのもいまどきなにをという感じで、ついにコンパイラで音が変わるのかという段階に突入したわけです。 Damienさんはこれを実証するために3通りの異なるビルドを作成して、ブラインドで投票を開始しました。これが一週間くらい前です。 http://www.audirvana.com/Site_2/Compiler_test.html コンパイラというのは簡単に言うと人の書いたプログラムから機械が分かる実行コードを生成するソフトウエアのことです。OSのアップデー

  • C言語の魅力 : VIPPERな俺

    yokochie
    yokochie 2011/04/25
    『標準化委員会「C++全然わからんw」』 C++難しい...
  • はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知

    はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28

    はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知
  • 1