Добавил:
Кафедра ВТ Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

2 лаба / writer

.cpp
Скачиваний:
6
Добавлен:
04.02.2022
Размер:
1.41 Кб
Скачать
#include <iostream>
#include <windows.h>
#include <string>
using std::cout;
using std::cin;
using std::endl;

int main(){
    char fileName[50], fileMap[50];
    HANDLE file = NULL, map = NULL;
    LPVOID lpFileMap = NULL;
    std::string data;

    cout << "Enter file name (in English, plez): ";
    cin >> fileName;

    file = CreateFile((LPCTSTR)&fileName[0], GENERIC_WRITE|GENERIC_READ, 0, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);

    if (file == INVALID_HANDLE_VALUE) cout << "Error 0x" << GetLastError() << endl;
    else{
        cout << "Enter file mapping name: ";
        cin >> fileMap;
        map = CreateFileMapping(file, NULL, PAGE_READWRITE, 0, 128, (LPCTSTR)&fileMap[0]);
        lpFileMap = MapViewOfFile(map, FILE_MAP_ALL_ACCESS, 0, 0, 0);
        if (lpFileMap != NULL)
        {
            cout << "\n\nFile projected successfully.\n";
            cout << "Projection's address: " << lpFileMap << endl;
        }
        else cout << "File projection crushed :(\n";

        cout << "Enter data for input: \n> ";
        getchar();
        std::getline(cin, data);

        CopyMemory(lpFileMap, data.c_str(), data.length() * sizeof(char));

        cout << "Data entered.\nNow open reader.exe\nDon't close writer-file\n";
        system("pause");
    }

    if (lpFileMap != NULL && file != NULL) {
        UnmapViewOfFile(lpFileMap);
        CloseHandle(file);
    }
}
Соседние файлы в папке 2 лаба