Yabu.log

色々勉強するブログです。

C言語

C言語で美咲フォントを扱う4

前回から引き続き、美咲フォントという8*8ピクセルのサイズで第二水準の漢字までが扱えるビットマップフォントをC言語で扱うプログラムを作っています。 ソースはここにあります。 github.com 処理は結構完成していて、呼び出し側から使うAPIの仕様などが固…

C言語で美咲フォントを扱う3

あまり進捗良くありませんが、とりあえずバイナリデータのどこにフォントがあるのか確認できるようになりました。 $ echo "犬" |nkf -s|hexdump 0000000 8c a2 0a まあこんな感じでSjisのコードを調べた後、そのデータの配列を作成し、 char test_letter[2] …

C言語で美咲フォントを扱う2

次回はコンソールに美咲フォントを出力して見たい お約束の品です? 00111100 01000010 00000010 00001100 00010000 00000000 00010000 00000000 0を抜くとなんの文字かわかりやすいかもしれません 1111 1 1 1 11 1 1 前回記事のヘッダの解説が若干不足してい…

C言語ポインタ勉強会に参加

オンラインで開催。 atnd.org 少人数制で東工大の先生(uchan_nos)がポインタについてわかりやすく教えてくれるという贅沢な1.5Hでした typedefでやると関数ポインタがわかりやすくなる メモリレイアウト 質問:char配列とcharポインタを文字列リテラルで初期…

C言語で美咲フォントを扱う1

とりあえずfontx2ファイルを読み込んでヘッダだけ表示してみた。 https://github.com/yuyabu/MisakiFont-sandbox >./font hdader size is 22 filesignature is FONTX fontname is MISAKI width is 8 hight is 8 char code flg is 1 blocks is 5c start_code …

「はじめて学ぶCの仕組み2」を読んだ

大体1週間程度で読み終わりました。 プログラミング学習シリーズ C言語改訂版 2 はじめて学ぶCの仕組み作者: 倉薫出版社/メーカー: 翔泳社発売日: 2009/02/13メディア: 大型本購入: 2人 クリック: 6回この商品を含むブログ (3件) を見る この本を読み始めた…

C言語復習ラスト。ライブラリについて

ライブラリは今までよく知らなかったので、復習ではない気がする。 ライブラリとは プリプロセッサ.c -> .c コンパイラ.c -> .o リンカ.o -> exe このプロセスの中の .oファイルをまとめてライブラリを作ることができる $ ar -r mylib.a a.o b.o ar: creatin…

C言語復習その6。プリプロセッサ、リンカについて

本書ラストのライブラリまで行けると思ったが、時間がなくなった。 もっと有意義に3連休を過ごせなかったのだろうか。(反省) プログラミング学習シリーズ C言語改訂版 2 はじめて学ぶCの仕組み作者: 倉薫出版社/メーカー: 翔泳社発売日: 2009/02/13メディア…

C言語の復習その6メモリについて

メモリ管理について学びました。malloc,free,reallocなど コンパイルするときに、知識不足によるコンパイルエラーがかなり減りました。*1 またコンパイルエラー時に、何が間違っているかすぐわかるようになり、なぜ動いているのか・動かないのかわからないと…

C言語の復習その5。関数ポインタについて

関数ポインタは「宣言方法」と「引数、返値があっていない適当に実装されたコードを読む」のがややこしいが、綺麗に書けばそこまで難解ではない。という認識です。 関数ポインタについて 引数や戻り値は暗黙の型変換が絡んで来るとややこしい 関数ポインタの…

C言語の復習その4。enum,3項演算子,goto,関数

関数ポインタをちょっと読み込んだくらい進みましたが、 関数ポインタは難しそうなので、それで一つ記事を書きます。 というわけでキリが良いので投稿♪ enum コメントの指摘 3項演算子 GOTO 関数 enum enumのメンバは本来値を持たない。(持つべきではない) …

C言語復習その3構造体、共用体について

構造体と共用体について学びました。 構造体のサイズについて コンパイラが勝手にサイズを偶数長になるように変更する ワードアライメント 構造体の正確なサイズはわからない。 sizeof演算子で大きさを求めるべき。 実際の現場でもsizeof演算子で大きさを求…

C言語の復習その2ポインタ

各型に対するポインタ変数の型がある どのかたのポインタも同じサイズ(私の環境では8バイト) 構造体のポインタ型もある ポインタ変数型のポインタもある char c = 'c'; char* pc = &c; char **ppc = &pc; printf("-------------------\n"); printf("c value …

C言語の復習を始めました。

こんにちは。大学の1年目のC言語の授業で予約語と非予約語の違いが判らずに 1週間くらい変数には何でもwight,hightを付けていた不届きものです。 最近C言語を再勉強することにしました。 一応大学ではC言語を一番書いていましたが、 C言語そのものの知識と…

SpectreのPoCの動かし方

世間を賑わしているGoogle Zero Projectが発見したCPUに関する2つのバグ、meltdownとspectreですが、 spectreのpocが公開されていたので手持ちのKali Linuxで動かしてみました。 www.exploit-db.com char *secret = "The Magic Words are Squeamish Ossifra…