2013-11-08 5 views
-1

Как добавить параметр пути к файлу под void pf? (Я новичок в C++)Добавить параметр пути к файлу?

Как вы можете видеть, я смотрю на то, чтобы вывести кеш определенного файла в физическую память.

Код:

#include <windows.h> 
#include <cstdio> 

void pf(const char* name) { 

HANDLE file = CreateFile(name, GENERIC_READ, FILE_SHARE_READ | FILE_SHARE_WRITE, 0, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0); 
if(file == INVALID_HANDLE_VALUE) { printf("couldn't open %s\n", name); return; }; 

unsigned int len = GetFileSize(file, 0); 

HANDLE mapping = CreateFileMapping(file, 0, PAGE_READONLY, 0, 0, 0); 
if(mapping == 0) { printf("couldn't map %s\n", name); return; } 

const char* data = (const char*) MapViewOfFile(mapping, FILE_MAP_READ, 0, 0, 0); 

if(data) 
{ 
    printf("prefetching %s... ", name); 

    // need volatile or need to use result - compiler will otherwise optimize out whole loop 
    volatile unsigned int touch = 0; 

    for(unsigned int i = 0; i < len; i += 4096) 
     touch += data[i]; 
} 
else 
    printf("couldn't create view of %s\n", name); 

UnmapViewOfFile(data); 
CloseHandle(mapping); 
CloseHandle(file); 
} 

int main(int argc, const char** argv) 
{ 
if(argc >= 2) for(int i = 1; argv[i]; ++i) pf(argv[i]); 
return 0; 
} 
+0

Предлагаю создать новую строку, содержащую путь к файлу и имя файла. –

+0

Можете ли вы привести мне пример и куда его поместить? как я уже сказал, я совершенно новый для C++, и это даже не мой код. – user1808010

+0

Новая строка с файловым путем заменит строку имени файла. Я понимаю, что Windows API будет принимать полные имена путей везде, где требуется имя файла. –

ответ

0

Ваш вопрос очень плохо сформулирован, по-видимому, потому, что вы почти ничего не знают о C++. Это даст вам возможность начать работу. Замените основную функцию следующим образом:

int main(int argc, const char** argv) 
{ 
    pf("C:\\SomeDir\\SomeFile.ext"); 
    return 0; 
} 

Затем получите книгу и начните изучать, как работают строки и функции.

+0

Маленький суровый, спасибо в любом случае – user1808010

Смежные вопросы