Проблемка с Boot-сектором ...
#include <errno.h>
#include <io.h>
#include <fcntl.h>
#include <stdio.h>
int main()
{
char bootbuf[512];
int deskfloppy, deskfile;
bootbuf[510]=0x55;
bootbuf[511]=0xaa;
deskfile=open("boot.exe", O_RDONLY);
if(deskfile==-1)
{
perror("Error open boot.exe");
return 1;
};
read(deskfile, bootbuf, 510);
close(deskfile);
deskfloppy=open("A:/", O_RDWR);
if(deskfloppy==-1)
{
perror("Error open disk A");
return 1;
};
lseek(deskfloppy, 0, SEEK_CUR);
write(deskfloppy, bootbuf, 512);
close(deskfloppy);
return 0;
}
Но вот тут и проблемка, с которой немогу совладать: пишет "Нет такого фолдера или файла"
и хендл возращает "-1" - Это на ерроре с Дисководом А:, с файлом boot.exe всё ок.
Помогите, заранее прошу сильно не смеятся! ;)
Хочу кинуть в бут сектор Exe-шник, вот прога которой хочу кинуть:
#include <errno.h>
#include <io.h>
#include <fcntl.h>
#include <stdio.h>
int main()
{
char bootbuf[512];
int deskfloppy, deskfile;
bootbuf[510]=0x55;
bootbuf[511]=0xaa;
deskfile=open("boot.exe", O_RDONLY);
if(deskfile==-1)
{
perror("Error open boot.exe");
return 1;
};
read(deskfile, bootbuf, 510);
close(deskfile);
deskfloppy=open("A:/", O_RDWR);
if(deskfloppy==-1)
{
perror("Error open disk A");
return 1;
};
lseek(deskfloppy, 0, SEEK_CUR);
write(deskfloppy, bootbuf, 512);
close(deskfloppy);
return 0;
}
Но вот тут и проблемка, с которой немогу совладать: пишет "Нет такого фолдера или файла"
и хендл возращает "-1" - Это на ерроре с Дисководом А:, с файлом boot.exe всё ок.
Помогите, заранее прошу сильно не смеятся! ;)
Слэшь переверни;)
PS: А терь должно воркиться
Слэшь переверни;)
Во-первых в С не играет роли !!!
Во-вторых \" - зарезервированный символ !!!
З.Ы. На всякий случай проверил
deskfloppy=open("A:\ ", O_RDWR); - с пробелом, а всё равно таже фигня !
Во-первых в С не играет роли !!!
Во-вторых \" - зарезервированный символ !!!
Бухгагага умора. Тебе ж написали "A:\\", там 2 слеша, видиш???????
Во вторых кто тебя надоумил кидать в бутсектор екзеху???? ЛОООЛ. КТО ЕЕ ЗАГРУЖАТЬ БУДЕТ??? В буте чистый бинарь должен быть. (Писать нада на асме)
И в третьих , если уж так приперло, то РТФМ. Чтоб открыть диск юзаеш CreateFile, DeviceIoControl и "\\\\.\\A:" - как имя файла.
А еще лучше заюзай RawWrite2. И не парься.
Бухгагага умора. Тебе ж написали "A:\\", там 2 слеша, видиш???????
[QUOTE]
[Posted by 195.248.168.176. This is added while posting a message to avoid misuse of WebWarper: see http://webwarper.net/han Example of using WebWarper: http://webwarper.net/ww/~av/lycos.com ]
И чего смеятся ??? :-) Ну нада же с чего-то начинать.
Всем спасибо !
Бухгагага умора. Тебе ж написали "A:\\", там 2 слеша, видиш???????
А всё равно на пашет (((
Во вторых кто тебя надоумил кидать в бутсектор екзеху???? ЛОООЛ. КТО ЕЕ ЗАГРУЖАТЬ БУДЕТ??? В буте чистый бинарь должен быть. (Писать нада на асме)
Как компильнуть .bin, используя Tasm ?
Как компильнуть .bin, используя Tasm ?
Скомпилируй в com - вот тебе и будет бин. Ключ /t если не ошибаюсь. Только учти что загрузка начинается по адресу 7C00h, то есть нада еще поставить ORG 7C00h.
А еще можно заюзать фасм или насм.
Скомпилируй в com - вот тебе и будет бин. Ключ /t если не ошибаюсь. Только учти что загрузка начинается по адресу 7C00h, то есть нада еще поставить ORG 7C00h.
А еще можно заюзать фасм или насм.
Я так и сделал ! :-) Спасибо за советы !!!