Форум программистов
 
О проблемах с регистрацией пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail, а тут можно восстановить пароль.

Вернуться   Форум программистов > C/C++ программирование > Visual C++
Регистрация

Восстановить пароль
Повторная активизация e-mail


Ответ
 
Опции темы
Старый 20.01.2021, 17:55   #1
ichi
Форумчанин
 
Регистрация: 14.03.2012
Сообщений: 108
По умолчанию Не создается файл необходимого размера с помощью CreateFile

В коде явно прописал размер создаваемого файла 20 Гигабайт, вместо этого создается файл 306 Мегабайт. Не могу понять почему так происходит. Кто-нибудь знает в чем может быть проблема?

Код:
#include <iostream>
#include <windows.h>

using namespace std;

void main() {
	LPCTSTR lpfname = TEXT("\\\\.\\F:\\Programming\\Projects\\cpp\\p1\\Debug\\test.tmp");
	LONG lsize = 21795921920; 
	DWORD dwErr;
	HANDLE file = CreateFile(lpfname, 
		                     GENERIC_WRITE,
			             FILE_SHARE_WRITE,
				     NULL,
				     OPEN_ALWAYS,
				     FILE_ATTRIBUTE_NORMAL,
				     NULL);
	dwErr = GetLastError();
	if (dwErr > 0) {
		cout << "Error Code: " << dwErr << endl;
	}
	SetFilePointer(file, lsize, NULL, FILE_BEGIN);
	SetEndOfFile(file);
	CloseHandle(file);
}
ichi вне форума Ответить с цитированием
Старый 20.01.2021, 18:10   #2
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,314
По умолчанию

Цитата:
Сообщение от ichi Посмотреть сообщение
в чем может быть проблема?
В размере переменной LONG - 32 бита, максимальный размер - 4ГБ.

Задавайте размер двумя переменными или используйте SetFilePointerEx()
waleri вне форума Ответить с цитированием
Старый 21.01.2021, 18:09   #3
ichi
Форумчанин
 
Регистрация: 14.03.2012
Сообщений: 108
По умолчанию

Спасибо. Буду доделывать.
ichi вне форума Ответить с цитированием
Ответ
Купить рекламу на форуме 20000 рублей в месяц

Опции темы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
CreateFile не создаёт файл fo,wf Помощь студентам 1 16.06.2017 14:45
Почему не создается файл в папке виндовс. Dennis777 Общие вопросы Delphi 27 11.11.2013 20:13
почему не создается файл? Serjuk Помощь студентам 23 14.05.2010 15:23
Не создается объектный файл TASM Misha_M. Помощь студентам 0 27.12.2009 15:34
CreateFile - считывание дискеты в файл и обратная запись на нее... kalexi Win Api 1 01.10.2007 18:56


Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru
Пеллетный котёл Emtas
котлы EMTAS