죄송합니다.이 기본 문제는 녀석들에게는 미안하지만, 문제가 생겨서 fwrite()
이 제대로 작동합니까?기존 파일에 아무 것도 쓰지 않고 fwrite()가 실패합니다.
#include <iostream>
#include <fstream>
#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>
using namespace std;
int main() {
FILE* fd = NULL;
fd = fopen("out","rw");
if (fd == NULL) {
printf("Open failed\n");
return -1;
}
int error = 0;
printf("Attempting write ... \n");
char buff[] = {"hello?\n"};
if((error = fwrite(buff, 1, 7, fd)) != 7) {
printf("fwrite() failed with code %d \n", error);
return -1;
}
fclose(fd);
return 0;
}
이 코드는 실패 -이 파일에 기록 칠 개 1B 문자 대신 7을 반환해야 할 때 fwrite()
그냥 0 반환합니다. 파일이 같은 디렉토리에 존재합니다. 나는 이것을 전체 파일 경로로 시도했다. 나는 chmod'd 출력 파일 out
to 777 (문제가 아니었다)에 대비해; fread()
및 fseek()
모두 예상대로 작동하지만 간략하게 사용했습니다.
내가 뭘 잘못하고 있니? 어떤 도움을 주셔서 감사합니다.
이것은'C++ '대신에'c' 질문처럼 보입니다. 여러분이 맞다면 –
@appleapple 태그를 수정해야합니다. 코드의 특정 부분에 C 라이브러리를 사용해야하지만 전체 프로젝트는 제가합니다. 작동을 위해 기술적으로 C++을 사용하고 있습니다. – APaul