タグ

Cに関するzetamattaのブックマーク (68)

  • SC: The SC Language System

    Japanese / English SC言語は,Common Lispで実装された,S式の(Scheme風の)構文を持つC言語です.たとえば,以下のようなCコード long sum(long *ar, int n){ long s=0; int i=0; do{ if (i >= n) break; s += ar[i++]; } while(1); return s; } を,SCでは, (def (sum ar n) (fn long (ptr long) int) (def s long 0) (def i int 0) (do-while 1 (if (>= i n) (break)) (+= s (aref ar (inc i))) ) (return s) ) と書くことができます. また,拡張SC言語から別のSC言語への「変形規則」

    zetamatta
    zetamatta 2008/06/14
    曰く『SC言語は,Common Lispで実装された,S式の(Scheme風の)構文を持つC言語です』
  • 教科書として書かれた一冊- 書評 - 例解Unixプログラミング教室 : 404 Blog Not Found

    2008年05月18日11:00 カテゴリ書評/画評/品評iTech 教科書として書かれた一冊- 書評 - 例解Unixプログラミング教室 著者より献御礼。 例解Unixプログラミング教室 冨永和人 / 権藤克彦 内容が「Unix/Linuxプログラミング 理論と実践」のだけど、こちらはこちらで良著。「Unix/Linuxプログラミング 理論と実践」がクックブック的なら、こちらは「リャマ」的な一冊となっている。 書「例解Unixプログラミング教室」は、UnixプログラムをCで書くための教科書を目指して書かれた一冊。 目次 - 例解UNIXプログラミング教室 - 書籍紹介【和書】 Pearson Education Japanより。 第1章 C の復習(1):マニュアルの読み方,エラー処理,構造体,共用体 第2章 C の復習(2):ポインタ,バイトオーダ,複雑な型 第3章 低水準入出力

    教科書として書かれた一冊- 書評 - 例解Unixプログラミング教室 : 404 Blog Not Found
    zetamatta
    zetamatta 2008/05/18
    die という関数をC言語でも作ってみるアイデア
  • プロセスを監視するプロセス? - すがブロ

    fork-exec において 複数の子プロセスを生み出して、常に一定のプロセスを起動させるにはどのようにすれば良いだろうか。 いまいちイディオム的なのがよくわからなかったので、必死こいて作ってみた。 子プロセスが exec するプログラム(sleep というファイル名にコンパイル) 1 // $Id:$ 2 #include <stdio.h> 3 #include <stdlib.h> 4 #include <unistd.h> 5 6 // 引数秒 sleep するだけ。 7 int main(int argc, char* argv[]) { 8 if(argc == 1) { 9 puts("exit"); 10 exit(1); 11 } 12 13 printf("sleep(%s)...\n", argv[1]); 14 sleep(atoi(argv[1])); 15 pu

    プロセスを監視するプロセス? - すがブロ
    zetamatta
    zetamatta 2008/05/14
    C言語でチャイルドプロセスを監視する。wait関数などを使っている
  • Charming Python: Functional programming in Python, Part 3

    IBM Developer is your one-stop location for getting hands-on training and learning in-demand skills on relevant technologies such as generative AI, data science, AI, and open source.

    Charming Python: Functional programming in Python, Part 3
    zetamatta
    zetamatta 2008/04/15
    gcc で関数の入口と出口にフックをかけるというえらいこっちゃ
  • 三項演算子の正しい書き方

    C・C++JavaPerl などのプログラミング言語では、条件演算子として三項演算子?:が用意されている。条件演算子の書き方として、以下のような説明がされることが多い。 condition ? true-expression : false-expression この説明は、以下のプログラムと同じ程度、間違っている。 #include <stdio.h> main( ){printf ("hel" "lo, world\n" );} 条件演算子は、正しくは以下のように書く。 condition ? true-expression : false-expression 使い方の例を示す。 compare = obj1 == null ? obj2 == null ? 0 : -1 : obj2 == null ? 1 : obj1.toString().compareTo(obj2.to

    zetamatta
    zetamatta 2008/04/11
    わたしは「?」の前で改行する時があるネ
  • GLib アプリケーションのコンパイル

    zetamatta
    zetamatta 2008/02/23
    GNOME のライブラリ - GLib の 2.0 以降の場合のコンパイル方法
  • オープンソースソフトウェアのコードの進化とリリースに関する考察 - D-6 [相変わらず根無し]

    オープンソースソフトウェアのコードの進化とリリースに関する考察 滅多にコラム的な事は書かないけど、ちょっと今日は書いてみたい。オープンソースプログラマとしてソースコードのリリースをしていく上での判断の仕方について。 オープンソースソフトウェア(クローズドでももちろんそうでしょうが)を書いているとよくわかるのだが、コードというものは常に進化し続ける。関数の引数が変わったり、内部動作が微妙に変わったり。そう言った変更自体はバグの修正やそれまで想定していなかったユースケースをカバーするという命題においては常に推奨されるべき事ではある。そして、その進化し続けるコードに古いバージョンとの互換性を100%求めるのは現実的ではない。 ただしそれを踏まえた上で、我々オープンソースプログラマーは最大限自分がリリースしているソフトウェアに依存しているソフトウェアへの突然の変更を強いる事を避けなくてはいけない。

    zetamatta
    zetamatta 2008/02/16
    関数のパラメータ(の個数)を変更する時は、新バージョンは別の名前にするなどして、旧バージョンがそのまま動作するようにしておくということか(まぁ、よくやってるけど)
  • C and C++ Forum