#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>
#include <dos.h>

int main(void);

int main(void) {

    char buf[100];
	 int io_handle;
	 unsigned count;

	 // Открываем устройство с именем IODRIVER

	 if( (io_handle = open("IODRIVER", O_RDWR)) == - 1 ) {

		// Если открыть не удалось, выводим
		// код ошибки

		printf("Ошибка при открытии устройства %d",errno);
		return errno;
	 }

	 // Читаем 8 байт из устройства в буфер buf

	 if( (count = read(io_handle, buf, 8)) == -1 ) {

		 // Если при чтении произошла ошибка,
		 // выводим ее код

		 printf("Ошибка чтения %d",errno);
	    return errno;
	}

	// Закрываем прочитанную строку нулем
	// для последующего вывода функцией printf

	buf[8]=0;

	printf("\n▒▒▒ Введена строка: %s ▒▒▒",buf);

	// Выводим только что прочитанные данные
	// обратно на то же устройство

	if( (count = write(io_handle, buf, 8)) == -1 ) {

		 // Если при записи произошла ошибка,
		 // выводим ее код

		 printf("Ошибка записи %d",errno);
	    return errno;
	}

	// Закрываем устройство

	close(io_handle);

	exit(0);
}

