對不起,這傢伙的基本問題,但我有一個問題只是讓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;
}
此代碼失敗 - fwrite()
剛剛返回0,當它應該返回7而不是用於寫入文件7個1B字符。該文件確實存在於相同的目錄中;我已經嘗試完整的文件路徑,而不是;我已經chmod'd輸出文件out
爲777萬一是這個問題(它不是); fread()
和fseek()
都按預期工作,但爲了簡潔起見,我已將它們取出。
我在這裏做錯了什麼?任何幫助表示讚賞。
這看起來像一個'c'問題而不是'C++',你應該改正標記 –
@appleapple你是對的 - 我必須在代碼的某些部分使用C庫,但總體項目我工作是技術上使用C++ – APaul