Почему после записи с memcpy в часть памяти mmaped я не вижу в файле?
Когда я открываю файл после запуска программы, я вижу только первую фразу.
void writeInFileMmaped(){
void* file_memory=NULL;
char* path="/home/testFile";
int fdTest=0;
struct stat bufTest;
char *phrase= "Hi, I'm a phrase";
//Make a file with 20M
system("truncate -s 20M /home/testFile");
//Open testFile
if((fdTest=open(path,O_RDWR))==-1){
perror("open testFile");
exit(EXIT_FAILURE);
}
if(fstat(fdTest,&bufTest)==-1){
perror("stat");
}
file_memory=mmap(0, bufTest.st_size, PROT_READ|PROT_WRITE, MAP_SHARED, fdTest,0);
if(file_memory==MAP_FAILED){
close(fdTest);
perror("Error mapping the file");
exit(EXIT_FAILURE);
}
memcpy(file_memory,phrase,strlen(phrase));
printf("%sn",file_memory);
memcpy(file_memory+100, phrase,strlen(phrase));
printf("%sn",file_memory+100);
}
Вывод хороший, но в файле появляется только "Привет, я фраза", я пытаюсь с sprintf, и результат тот же. Я думаю, что это проблема с NULL