タグ

関連タグで絞り込む (0)

  • 関連タグはありません

タグの絞り込みを解除

Cに関するdid2のブックマーク (2)

  • C言語講座:エラーメッセージ

    [NDEBUGマクロとassert( )]←このソース→[悪質なバグの例] /* エラーを示すグローバル変数 */ /* errno はエラーを示すグローバル変数です。プログラム起動時に、0に初期化されます。標準ライブラリ関数のあるものは、エラーを検出すると、エラーの種類に応じて、error.h に定義されているエラー番号をerrno にセットします。 エラーを検出するには、既に呼ばれた他の関数によって、エラー番号がセットされている可能性があるので、関数を呼び出す直前に errno を0に再初期化して置き、関数を呼び出した直後に errno の値を調べます。 今回は、平方根を返すライブラリ関数を例にして、エラーの検出について学びます。平方根を返すライブラリ関数を下記に示します。 #include <math.h> double sqrt(double x); 例:y = sqrt(x);

    did2
    did2 2011/11/15
    perror
  • asprintf() - C初心者がLinuxエンジニアを目指す日記

    asprintf()は、sprintf()に似ているが、出力文字列を (終端の NULL バイトも含めて) 保持するのに十分な大きさのメモリを確保し、最初の引数にその文字列へのポインタを返す。成功すると、出力されたバイト数を返す。メモリの割り当てができなかったり、その他エラーが生じると、これらの関数は -1 を返し、strp の内容は未定義となる。 使用例 #define _GNU_SOURCE #include #include int main(void) { int res; char *strp; asprintf(&strp, "Hello, world!\n"); if (res == -1) return 0; printf("%s", strp); free(strp); strp = NULL; return 0; } 以下の理由により、あまり良い実装ではないと思う。 戻

    asprintf() - C初心者がLinuxエンジニアを目指す日記
    did2
    did2 2010/05/21
  • 1