https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70609
Bug ID: 70609 Summary: std::experimental::filesystem::copy fails if the file size is 0 bytes Product: gcc Version: 5.3.1 Status: UNCONFIRMED Severity: normal Priority: P3 Component: libstdc++ Assignee: unassigned at gcc dot gnu.org Reporter: fruko_eto at hotmail dot com Target Milestone: --- #include <experimental/filesystem> #include <fstream> int main() { std::ofstream o("1.txt"); o.close(); std::experimental::filesystem::copy("1.txt", "2.txt"); } The above code fails and when the exception caught, it gives filesystem error: cannot copy: Input/output error [1.txt] [2.txt] generic:5 It also gives the same error when I create the file with touch instead of std::ofstream. However, it works when I write something to the & save & delete everything & save again. After these operations even though file looks empty its size is 1 byte and it works without a problem. g++ version 5.3.1 20151207 (Red Hat 5.3.1-2) Fedora 23 Only parameters given to g++ is -std=c++17 and -lstdc++fs