// C program to append the contents of
// source file to the destination file
// including header files
#include <stdio.h>
// Function that appends the contents
void appendFiles(char source[],
char destination[])
{
// declaring file pointers
FILE *fp1, *fp2;
// opening files
fp1
= fopen(source
, "a+"); fp2
= fopen(destination
, "a+");
// If file is not found then return.
if (!fp1 && !fp2) {
"detect file(s)\n");
return;
}
char buf[100];
// explicitly writing "\n"
// to the destination file
// so to enhance readability.
// writing the contents of
// source file to destination file.
fgets(buf
, sizeof(buf
), fp1
); }
// printing contents of
// destination file to stdout.
fgets(buf
, sizeof(buf
), fp2
); }
}
// Driver Code
int main()
{
char source[] = "file1.txt",
destination[] = "file2.txt";
// calling Function with file names.
appendFiles(source, destination);
return 0;
}
Ly8gQyBwcm9ncmFtIHRvIGFwcGVuZCB0aGUgY29udGVudHMgb2YKLy8gc291cmNlIGZpbGUgdG8gdGhlIGRlc3RpbmF0aW9uIGZpbGUKLy8gaW5jbHVkaW5nIGhlYWRlciBmaWxlcwojaW5jbHVkZSA8c3RkaW8uaD4KCi8vIEZ1bmN0aW9uIHRoYXQgYXBwZW5kcyB0aGUgY29udGVudHMKdm9pZCBhcHBlbmRGaWxlcyhjaGFyIHNvdXJjZVtdLAoJCQkJY2hhciBkZXN0aW5hdGlvbltdKQp7CgkvLyBkZWNsYXJpbmcgZmlsZSBwb2ludGVycwoJRklMRSAqZnAxLCAqZnAyOwoKCS8vIG9wZW5pbmcgZmlsZXMKCWZwMSA9IGZvcGVuKHNvdXJjZSwgImErIik7CglmcDIgPSBmb3BlbihkZXN0aW5hdGlvbiwgImErIik7CgoJLy8gSWYgZmlsZSBpcyBub3QgZm91bmQgdGhlbiByZXR1cm4uCglpZiAoIWZwMSAmJiAhZnAyKSB7CgkJcHJpbnRmKCJVbmFibGUgdG8gb3Blbi8iCgkJCSJkZXRlY3QgZmlsZShzKVxuIik7CgkJcmV0dXJuOwoJfQoKCWNoYXIgYnVmWzEwMF07CgoJLy8gZXhwbGljaXRseSB3cml0aW5nICJcbiIKCS8vIHRvIHRoZSBkZXN0aW5hdGlvbiBmaWxlCgkvLyBzbyB0byBlbmhhbmNlIHJlYWRhYmlsaXR5LgoJZnByaW50ZihmcDIsICJcbiIpOwoKCS8vIHdyaXRpbmcgdGhlIGNvbnRlbnRzIG9mCgkvLyBzb3VyY2UgZmlsZSB0byBkZXN0aW5hdGlvbiBmaWxlLgoJd2hpbGUgKCFmZW9mKGZwMSkpIHsKCQlmZ2V0cyhidWYsIHNpemVvZihidWYpLCBmcDEpOwoJCWZwcmludGYoZnAyLCAiJXMiLCBidWYpOwoJfQoKCXJld2luZChmcDIpOwoKCS8vIHByaW50aW5nIGNvbnRlbnRzIG9mCgkvLyBkZXN0aW5hdGlvbiBmaWxlIHRvIHN0ZG91dC4KCXdoaWxlICghZmVvZihmcDIpKSB7CgkJZmdldHMoYnVmLCBzaXplb2YoYnVmKSwgZnAyKTsKCQlwcmludGYoIiVzIiwgYnVmKTsKCX0KfQoKLy8gRHJpdmVyIENvZGUKaW50IG1haW4oKQp7CgljaGFyIHNvdXJjZVtdID0gImZpbGUxLnR4dCIsCgkJZGVzdGluYXRpb25bXSA9ICJmaWxlMi50eHQiOwoKCS8vIGNhbGxpbmcgRnVuY3Rpb24gd2l0aCBmaWxlIG5hbWVzLgoJYXBwZW5kRmlsZXMoc291cmNlLCBkZXN0aW5hdGlvbik7CgoJcmV0dXJuIDA7Cn0K