Скачиваний:
37
Добавлен:
01.05.2014
Размер:
2.35 Кб
Скачать
#include <io.h>
#include <conio.h>
#include <stdio.h>
#include <fcntl.h>
#include <sys\types.h>
#include <sys\stat.h>
#include <malloc.h>
#include <errno.h>

void main(int, char *[]);
void main(int argc, char *argv[]) {

	 int source, taget, i;
	 char *buffer;
	 unsigned count;

	 if(argc == 3) {

// ЋвЄалў Ґ¬ Ёб室­л© Є®ЇЁагҐ¬л© д ©«

		 if((source = open(argv[1], O_BINARY | O_RDONLY)) == - 1) {

			  printf("\nЋиЁЎЄ  ЇаЁ ®вЄалвЁЁ Ёб室­®Ј® д ©« : %d",
			  errno);
			  exit(-1);

		 }

// ЋвЄалў Ґ¬ ўл室­®© д ©«. ЏаЁ ­Ґ®Ўе®¤Ё¬®б⨠ᮧ¤ Ґ¬
// ­®ўл©. …б«Ё д ©« 㦥 бгйҐбвўгҐв, ўлў®¤Ё¬ ­  нЄа ­
// § Їа®б ­  ЇҐаҐ§ ЇЁбм ᮤҐа¦Ё¬®Ј® бгйҐбвўго饣® д ©« 

		taget = open(argv[2], O_BINARY | O_WRONLY | O_CREAT | O_EXCL,
									 S_IREAD | S_IWRITE);
		if(errno == EEXIST) {

			printf("\n” ©« бгйҐбвўгҐв. ЏҐаҐ§ ЇЁб вм? (Y,N)\n");

// Ћ¦Ё¤ Ґ¬ ®вўҐв ®ЇҐа в®а  Ё  ­ «Ё§Ёа㥬 ҐЈ®

			i = getch();
			if((i == 'y') || (i == 'Y'))
				taget = open(argv[2], O_BINARY | O_WRONLY | O_CREAT | O_TRUNC,
											 S_IREAD | S_IWRITE);

		}

// …б«Ё ўл室­®© д ©« ®вЄалвм ­Ґў®§¬®¦­®, ўлў®¤Ё¬
// б®®ЎйҐ­ЁҐ ®Ў ®иЁЎЄҐ Ё § ўҐаи Ґ¬ а Ў®вг Їа®Ја ¬¬л

		if(taget == -1){
			  printf("\nЋиЁЎЄ  ЇаЁ ®вЄалвЁЁ ўл室­®Ј® д ©« : %d",
			  errno);
			  exit(-1);
		}

// Ѓг¤Ґ¬ зЁв вм Ё ЇЁб вм §  ®¤Ё­ а § 10000 Ў ©в®ў

		count = 10000;

// ‡ Є §лў Ґ¬ ЎгдҐа ¤«п ЇҐаҐ¤ зЁ ¤ ­­ле

		if((buffer = (char *)malloc(count)) == NULL) {
			  printf("\nЌҐ¤®бв в®з­® ®ЇҐа вЁў­®© Ї ¬пвЁ");
			  exit(-1);
		}


// Љ®ЇЁа㥬 Ёб室­л© д ©«

		while(!heof(source)) {

// —Ёв Ґ¬ count Ў ©в®ў ў ЎгдҐа buffer

			if((count = read(source, buffer, count)) == -1) {
			  printf("\nЋиЁЎЄ  ЇаЁ з⥭ЁЁ: %d",
			  errno);
			  exit(-1);
			}

// ‚лЇ®«­пҐ¬ § ЇЁбм count Ў ©в®ў Ё§ ЎгдҐа  ў ўл室­®© д ©«

			if((count = write(taget, buffer, count)) == - 1) {
			  printf("\nЋиЁЎЄ  ЇаЁ § ЇЁбЁ: %d",
			  errno);
			  exit(-1);
			}
		}

// ‡ Єалў Ґ¬ ўе®¤­®© Ё ўл室­®© д ©«л

		close(source);
		close(taget);

// Ћбў®Ў®¦¤ Ґ¬ Ї ¬пвм, § Є § ­­го Ї®¤ ЎгдҐа

		free(buffer);
	 }

// …б«Ё ЇаЁ § ЇгбЄҐ Їа®Ја ¬¬л ­Ґ Ўл«Ё гЄ § ­л
// ЇгвЁ ¤«п ўе®¤­®Ј® Ё«Ё ўл室­®Ј® д ©« ,
// ўлў®¤Ё¬ б®®ЎйҐ­ЁҐ ®Ў ®иЁЎЄҐ

	 else
		  printf("\n"
					"‡ ¤ ©вҐ ЇгвЁ ¤«п Ёб室­®Ј®"
					" Ё १г«мвЁаго饣® д ©«®ў!\n");
}

Соседние файлы в папке COPYF1