int 여야하는 공유 파일을 만들려고합니다. 그러나int 파일을 만드는 방법
int f;
, 내가 뭔가를 나에게 오류를 제공
if ((fstat(f, &stbuf) != 0) || (!S_ISREG(stbuf.st_mode)))
에 도달합니다. 이 파일은 같은 문자열이 포함되어야합니다
abcd
내 생각은 다음과 같다,하지만 그것은 작동하지 않습니다
int main() {
int f;
void *memoria = NULL;
int tam;
struct stat stbuf;
char string[15] = {0};
f = open("fichero.txt", O_RDWR, S_IRUSR);
// ERROR IS HERE!!
if ((fstat(f, &stbuf) != 0) || (!S_ISREG(stbuf.st_mode))) {
printf("Error");
}
tam = stbuf.st_size;
printf("%d\n", tam);
// Proyect the file
memoria = mmap(0, tam, PROT_WRITE, MAP_SHARED, f, 0);
// Copy the string into the file
memcpy(memoria, "abcd", 5);
munmap(memoria, tam);
return 0;
}
내가 개방의 매개 변수를 변경해야? 내가 뭘 잘못하고 있니? 감사!
당신이 우리에게 당신이 얻을 오류 메시지를 줄 수 있을까요? –
'open'이 성공했는지 확인하지 않고 특정 오류를 출력하지 않습니다. 따라서 디버깅이 불가능합니다. –
분할 오류입니다. 나는 내가 만들지 않은 파일에 접근하려고 노력하고 있다고 생각하지만, 그렇게하고 싶지는 않습니다. 실제로 그것을 생성하고 싶습니다. –