Ich erstelle Dateien 1.txt
2.txt
und schreibe etwas Inhalt in 1.txt
.
Dann verwende ich den folgenden Code und möchte den Inhalt zu 2.txt
kopieren.
Aber es funktioniert nicht. Es gibt nichts in 2.txt
.sendfile kopiert keine Dateiinhalte
Können Sie meinen Fehler erklären?
int main()
{
int fd1 = open("1.txt",O_RDWR);
int fd2 = open("2.txt",O_RDWR);
struct stat stat_buf ;
fstat(fd1,&stat_buf);
ssize_t size = sendfile(fd1,fd2,0,stat_buf.st_size);
cout<<"fd1 size:"<<stat_buf.st_size<<endl; //output 41
cout<<strerror(errno)<<endl; //output success
close(fd1);
close(fd2);
return 0;
}
Dieses markiert ist 'c', aber deutlich C++ Streams verwenden. Tu das nicht. – unwind
In C++ verschoben. ;) –
Da ich die Linux C API - "sendfile" verwende, habe ich "C" getauft. Und ich werde darauf achten. Danke! – Tengchao