# HG changeset patch # User Markus Bröker # Date 1229187484 -3600 # Node ID 0a8be4eac87e9d769e4d40d06ea6ab324b89c833 # Parent f19f44e2e86307377df9e4141f48d981aa0d3540 c++ file copy demo added committer: Markus Bröker diff --git a/Makefile b/Makefile --- a/Makefile +++ b/Makefile @@ -39,7 +39,8 @@ gauss \ mem2swap \ prog_limit \ - connection + connection \ + copy .SUFFIXES: .c .cc .asm @@ -215,6 +216,10 @@ @echo Linking $< ... @$(CPP) -o $@ $< +copy: copy.o + @echo Linking $< ... + @$(CPP) -o $@ $< + .PHONY: clean uninstall clean: diff --git a/copy.cc b/copy.cc new file mode 100644 --- /dev/null +++ b/copy.cc @@ -0,0 +1,39 @@ +/** + * Kopierprogramm für Dateien in C++ + * Copyright (C) 2008 Markus Bröker + */ + +#include +#include + +int main(int argc, char **argv) +{ + std::ifstream in; + std::ofstream out; + + char c; + + if ( argc != 3 ) { + std::cout << "Benutzung: " << argv[0] << " " << std::endl; + return EXIT_SUCCESS; + } + + in.open(argv[1], std::ios::binary); + if ( !in ) { + std::cerr << "Fehler: Kann Datei " << argv[1] << " nicht lesen!" << std::endl; + } + + out.open(argv[2]); + if ( !out ) { + std::cerr << "Fehler: Kann Datei " << argv[2] << " nicht beschreiben!" << std::endl; + } + + while ( in.get(c) ) { + out << c; + } + + in.close(); + out.close(); + + return EXIT_SUCCESS; +}