mongodb c 드라이버가 사용하는 함수에 약간 문제가 있습니다.이 인스턴스의 함수에서 반환 된 const char 포인터를 사용하는 방법은 무엇입니까? (mongodb 관련)
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에서 볼 :
나는 다음과 같은 방식으로 사용할 수있는 시도하고있어gridfile_get_field (gridfile *gfile, const char *name) (returns const char *)
을 : 문제의 기능은 다음과 같습니다
file contains: ^A
file contains: ^A
file contains: ^A
내가 잘못하고있는 것이 확실하지 않습니다. 필자가 지정하는 필드는 gridfs에 저장하는 모든 파일에 존재하기 때문에 그럴 것 같지 않습니다 (나중에 "파일 포함 :"에 파일이 없으면 지정하지 않습니다). 나는 포인터에 관해서 뭔가 잘못하고 있다고 생각한다. 누구든지 어떤 제안이라도 있으면, 그것은 굉장 할 것입니다. 당신이 가장 가능성이 뭔가 잘못하고있는 당신이 함수의 반환 값을 캐스팅 할 필요를 느끼는 경우
편집 : 진짜 선언은
const char * gridfile_get_field (gridfile *gfile, const char *name);
실제 선언문을'gridfile_get_field'로 보여 주어야합니다. –