и открываем его на запись
Листинг 23
Проверка возможности получения // доступа к физическим записям файла // Файл recacc\recacc.cpp // // (C) A. Frolov, 1993 // =================================================== #include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <conio.h>
#include <fcntl.h>
#include <io.h>
#include <dos.h>
#include <sys\stat.h>
#include <share.h>
#define BYTE unsigned char #define WORD unsigned int extern "C" int LogPhysicalRecord(int, long, long, BYTE, WORD);
extern "C" int LockPhysicalRecordSet(BYTE, WORD);
extern "C" void ReleasePhysicalRecordSet(void);
extern "C" void ClearPhysicalRecordSet(void);
void main(void) { char FilePath[255]; int FileHandle; char Buff[80]; long RecordStartOffset; char msg[] = "PATCH!!!"; int ccode; unsigned count; printf("\n*RECACC* (C) Frolov A., 1993\n");
// Вводим имя файла и открываем его на запись и чтение printf("\nВведите путь к файлу:");
gets(FilePath);
strupr(FilePath);
if ((FileHandle = open(FilePath, O_RDWR | O_BINARY | O_DENYNONE, SH_DENYNONE)) == -1) { printf("Не могу открыть файл\n");
} // Задаем смещение в файле, начиная с которого // в файл будет записана строка "PATCH!!!" printf("\nВведите смещение начала записи:");
gets(Buff);
RecordStartOffset = atol(Buff);
// Позиционируем на начало записи lseek(FileHandle, RecordStartOffset, 0);
// Делаем попытку изменить содержимое записи ccode = _dos_write(FileHandle, msg, strlen(msg), &count);
if(!ccode) printf("Запись обновлена\n");
else printf("Ошибка при обновлении " "записи в файле: %02.2X\n", ccode);
// Закрываем файл close(FileHandle);
}
Forekc.ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий