mongodb c ドライバーが使用する aa 関数に少し問題があります。問題の関数は次のようになります。
gridfile_get_field (gridfile *gfile, const char *name) (returns const char *)
私は次の方法でそれを使用しようとしています:
const char * field = "file";
char * filename;
filename = (char *)gridfile_get_field(&gfile, field);
FILE * file;
file = fopen("test.txt", "a+");
fprintf(file, "file contains: %s\n", filename);
fclose(file);
ただし、実行後、test.txt に次のように表示されます。
file contains: ^A
file contains: ^A
file contains: ^A
何が間違っているのかわかりません。指定したフィールドは、gridfs に保存しているすべてのファイルに存在するため、そうではないと思います (存在しないものを "file contains: " のファイルだけに指定し、その後に文字はありません)。私はポインターに関して何か間違ったことをしていると思います。誰かに何か提案があれば、それは素晴らしいことです。
編集::実際の宣言は
const char * gridfile_get_field (gridfile *gfile, const char *name);