我想將file1內容複製到file2,但在寫入命令file2仍然爲空之後。write()不寫入數據
int fd1;
int fd2;
size_t len;
size_t nbytes;
ssize_t bytes_read;
fd1 = open(file1, O_RDWR);
fd2 = open(file2, O_WRONLY | O_CREAT | O_TRUNC, 0644);
char *buf[len];
nbytes = sizeof(buf);
bytes_read = read(fd1, buf, nbytes);
write(fd2, &bytes_read, nbytes);
close(fd1);
close(fd2);
return 0;
這條線有什麼不好嗎?
char *buf[len];
我應該使用malloc還是memset?
_這裏有什麼不好的? char * buf [len]; _ yes,你需要一個字符串(一個字符數組),而不是指向字符的指針數組,更改爲'char buf [len];',並且您正在使用未初始化的len。 –
'sizeof(buf)'是編譯時,'buf'初始化不是。 – tilz0R
那麼第一個len是未定義的。此外,通過使用char * buf [len],您可以創建一個「2D」數組[或者至少是一個數組上的指針] – kaldoran