怎么用C调用windowsAPI将一个文件的前512个字节写到一个.img中
如何用C调用windowsAPI将一个文件的前512个字节写到一个.img中
rt,这是我们的作业,要用四种方法,先问问一个,剩下的三个应该会比较类似
求大神帮帮忙……
------解决方案--------------------
4个方法
:
1.
rt,这是我们的作业,要用四种方法,先问问一个,剩下的三个应该会比较类似
求大神帮帮忙……
------解决方案--------------------
4个方法
:
1.
- C/C++ code
HANDLE WINAPI CreateFile( __in LPCTSTR lpFileName, __in DWORD dwDesiredAccess, __in DWORD dwShareMode, __in_opt LPSECURITY_ATTRIBUTES lpSecurityAttributes, __in DWORD dwCreationDisposition, __in DWORD dwFlagsAndAttributes, __in_opt HANDLE hTemplateFile );
------解决方案--------------------
------解决方案--------------------
呵呵,假设有一个文件叫做c_ghost,我们要将它写到floppy.img里。
看看Linux的做法:
Shell的写法:
1. head -c 512 c_ghost > floppy.img
2. dd if=c_ghost of=floppy2.img bs=512 count=1
Linux API的写法:
- C/C++ code
#include <stdio.h> #include <sys/stat.h> #include <sys/types.h> #include <fcntl.h> int main(void) { int fdin, fdout; int n; char buf[512] = {0}; fdin = open("c_ghost", O_RDONLY); if(fdin < 0) { perror(""); exit(1); } fdout = open("floppy.img", O_WRONLY | O_CREAT); if(fdout < 0) { perror(""); exit(1); } if((n = read(fdin, buf, 512)) < 512) { printf("c_ghost is %d bytes, smaller than 512 bytes.\n", n); exit(1); } write(fdout, buf, 512); close(fdout); close(fdin); return 0; }