今日はまった罠

    char buf[ 1024 ];
    :
    memset( buf, 0, sizeof( buf ) );
    while( !feof( fp ) ){
        if( fgets( buf, sizeof( buf - 1 ), fp ) == NULL ) break;
         :
    }

改行まで読んでくれずに、3バイトごとの細切れなデータになりましたとさ。