2011-03-01から1ヶ月間の記事一覧

setjmpとlongjmpについて

エキスパート C プログラミングを読んでいたら setjmpとlongjmpについて書かれていたので乗っていたサンプルプログラムを試してみました。 #include #include jmp_buf buf;void banana() { printf( "in banana()\n" ); longjmp( buf, 1 ); /* NOTREACHED */…

MinGWにてSocket通信を行うには

MinGWにてsocket通信のプログラムを開発していた際に困ったので備忘録として残しておきます。 MinGWはUNIX風味のシェル環境になりますが、WindowsAPIを搭載したWindowsアプリケーションの開発環境となります。 そのためなのか、MinGWはWinsockを使用するよう…

C言語でバスエラーの対処方法

友人のだるいさんが勉強会中にC言語でバスエラーを発生させたので解決策を十分くらいで書いたので、のせます。#include #include #include int main() { char *str = (char*)malloc(sizeof(char)*8); int i; strcpy( str , "abcdefg" ); puts(str); for( i …

スペースの違いは実在した

Lions' Commentary on UNIX に書かれていた。 x =+ 1; は x = +1; と異なるという文章ですが、つい先日エキスパートCプログラミングを読んでいたところb=-3; /* bから3を引く */ b= -3; /* bに-3を代入する */と書かれていたのを発見しました。 どうやら昔…

再帰でStrlenを書いてみた

土曜日の友人との勉強会に友人からC言語にて文字列の終端をとってくるのは、どうすれば良いか聞かれたので Strlenを使えば良いといったら、自分で関数を作るのはどうすればいいのか聞かれたので、その場で10分ぐらいで書いたものを今日はUPします。#inclu…

a.outって実は

gcc main.c などで、コンパイルを行うと a.out という実行ファイルが生成されます。 このファイル名の由来は "Assembler Output"で、リンカなどがまだ生成されない 古いUNIXの名残なんですってね。PDP-7 で作成されたアセンブラが出力するファイル名が a.out…

コンパイラの違いなのか?

Lions' Commentary on UNIX を読んでいたところx =+ 1; は x = +1; とは異なる。それならば、 x =+1; の意味はどうなるだろうか。と書かれていたので、試してみました/***ソース***/#include void main() { int num1 = 10; int num2 = 10; int num3 = 10; nu…

友人と話していて出来たもの

友人のだるいさんっと話していたら出来たMACにて【まどか☆マギカ】のタイトルハッカー少女MAC☆OS第1話 「OSの中で有った、ような…」 第2話 「それはとっても美しいなって」 第3話 「もうウィルスもあまり怖くない」 第4話 「Windowsも、Linux…