warning: Creating default object from empty value in /var/www/drupal-5.23/modules/taxonomy/taxonomy.module on line 1418.

デバッグの方法

みなさんは、日ごろプログラミングにおいてデバッグはどのようにされているだろうか。Eclipse などの開発環境を使っている場合は、それを利用すればいいと思う。
みなさんは、日ごろプログラミングにおいてデバッグはどのようにされているだろうか。Eclipse などの開発環境を使っている場合は、それを利用すればいいと思う。

C で、error: label at end of compound statement

人の作った C プログラムを gcc でコンパイルしていたら、 XXXXX.c:999: error: label at end of compound statement とのエラー。
人の作った C プログラムを gcc でコンパイルしていたら、 XXXXX.c:999: error: label at end of compound statement とのエラー。
Posted on 2006-11-16 by yas |

C で、バイト列を画面に文字列で表示する方法

ここでは、作成したバイト列(バイナリ)のハッシュ値を表示する方法を考えてみよう。
#include <stdio.h>
#include <string.h>
#include <openssl/sha.h>

int main(int argc, char** argv) {

    unsigned char hash[SHA_DIGEST_LENGTH];
    unsigned char* b;
    unsigned char* s = "string string string";
    int i, dlen;

    dlen = strlen(s);

    if ((b = (unsigned char *)malloc(dlen)) == NULL) {
        return (-1);
    }

    memcpy(b, s, dlen);
    SHA1(b, dlen, hash);
printf("hash: ");
    <strong>for(i = 0; i < SHA_DIGEST_LENGTH; i++) {
printf("%02X", *(hash + i));
    }</strong>
printf("\n");
    free(b);
}
上の内容を hashtest.c とかいう名前で保存して、 gcc -lssl hashtest.c とコンパイルすればよい。コンパイルすると a.out というファイルができるから ./a.out [Enter キー] で実行してみよう。
ここでは、作成したバイト列(バイナリ)のハッシュ値を表示する方法を考えてみよう。
#include <stdio.h>
#include <string.h>
#include <openssl/sha.h>

int main(int argc, char** argv) {

    unsigned char hash[SHA_DIGEST_LENGTH];
    unsigned char* b;
    unsigned char* s = "string string string";
    int i, dlen;

    dlen = strlen(s);

    if ((b = (unsigned char *)malloc(dlen)) == NULL) {
        return (-1);
    }

    memcpy(b, s, dlen);
    SHA1(b, dlen, hash);
printf("hash: ");
    <strong>for(i = 0; i < SHA_DIGEST_LENGTH; i++) {
printf("%02X", *(hash + i));
    }</strong>
printf("\n");
    free(b);
}
上の内容を hashtest.c とかいう名前で保存して、 gcc -lssl hashtest.c とコンパイルすればよい。コンパイルすると a.out というファイルができるから ./a.out [Enter キー] で実行してみよう。

C で、ハッシュ値を求める方法

#include <stdio.h>
#include <string.h>
#include <openssl/sha.h>

int main(int argc, char** argv) {

    unsigned char hash[SHA_DIGEST_LENGTH];
    unsigned char* b;
    unsigned char* s = "string string string";
    int dlen;

    dlen = strlen(s);

    if ((b = (unsigned char *)malloc(dlen)) == NULL) {
        return (-1);
    }

    memcpy(b, s, dlen);  //  s を b に dlen 分だけ(すなわち文字列 s を)コピーする。
    SHA1(b, dlen, hash); // b を c 分だけのハッシュ値を hash に求める。

// 処理

    free(b);
}
上の内容を hashtest.c とかいう名前で保存して、 gcc -lssl hashtest.c とコンパイルすればよい。
#include <stdio.h>
#include <string.h>
#include <openssl/sha.h>

int main(int argc, char** argv) {

    unsigned char hash[SHA_DIGEST_LENGTH];
    unsigned char* b;
    unsigned char* s = "string string string";
    int dlen;

    dlen = strlen(s);

    if ((b = (unsigned char *)malloc(dlen)) == NULL) {
        return (-1);
    }

    memcpy(b, s, dlen);  //  s を b に dlen 分だけ(すなわち文字列 s を)コピーする。
    SHA1(b, dlen, hash); // b を c 分だけのハッシュ値を hash に求める。

// 処理

    free(b);
}
上の内容を hashtest.c とかいう名前で保存して、 gcc -lssl hashtest.c とコンパイルすればよい。
Posted on 2006-11-07 by yas |