GetStdHandle , , , INVALID_HANDLE_ERROR,
#define INVALID_HANDLE_VALUE (HANDLE)-1.
ReadFile WriteFile BOOL . FALSE, . MS Windows, GetLastError. , .
:
#include <windows.h>
#include <wincon.h>
#include <stdio.h>
void main()
{char buffer[100]="It was readed ";
int len;
DWORD actlen;
HANDLE hstdin,hstdout;
BOOL rc;
len=strlen(buffer);
hstdout=GetStdHandle(STD_OUTPUT_HANDLE);
if(hstdout==INVALID_HANDLE_VALUE)ExitProcess(0);
hstdin=GetStdHandle(STD_INPUT_HANDLE);
if(hstdin==INVALID_HANDLE_VALUE)ExitProcess(0);
rc=ReadFile(hstdin,buffer+len,80,&actlen,NULL);
if(!rc)ExitProcess(0);
actlen+=len;
WriteFile(hstdout,buffer,actlen,&actlen,0);
getchar();
ExitProcess(0);
}
:
1. - MS Windows.
2. .
2
, . , . Windows CreateFile. CloseHandle.
CreateFile , , . , MS Windows , W. ANSI, UNICODE. , . ANSI.
CreateFile 7 , , , , ( NULL, .. ). (), , ( NULL). CreateFile , , INVALID_HANDLE_VALUE. CreateFileA
|
|
HANDLE CreateFile(LPCSTR lpFileName, DWORD dwDesiredAccess, DWORD dwShareMode, LPSECURITY_ATTRIBUTES lpSecurityAttributes, DWORD dwCreationDisposition, DWORD dwFlagsAttributes, HANDLE hTemplateFile);
lpFileName , dwDesiredAccess , dwShareMode , lpSecurityAttributes , dwCreationDisposition , dwFlagsAttributes , hTemplateFile .
dwFlagsAttributes . . () , 0, , 1, , 2, , 4. FILE_ATTRIBUTE_NORMAL. GENERIC_READ GENERIC_WRITE, . , ( ) dwDesiredAccess, . FILE_SHARE_READ FILE_SHARE_WRITE, . CREATE_NEW, CREATE_ALWAYS, OPEN_EXISTING, OPEN_ALWAYS, TRUNCATE_EXISTING, dwCreationDisposition, . CREATE_NEW , , . CREATE_ALWAYS , , . OPEN_EXISTING , , . OPEN_ALWAYS , , , . TRUNCATE_EXISTING : , , , ; , .
CloseHandle, , .
BOOL CloseHandle(HANDLE hObject),
. , , , .
:
#include <windows.h>
#include <wincon.h>
#include <stdio.h>
#define METHOD 0
|
|
void main()
{char buffer[100]="1234567890It was readed";
int len;
DWORD cb,cbwl;
HANDLE hstout,fhandle;
char fname[]="myresult.txt";
BOOL rc;
len=strlen(buffer);
hstout=GetStdHandle(STD_OUTPUT_HANDLE);
if(hstout==INVALID_HANDLE_VALUE)ExitProcess(0);
fhandle=CreateFile(fname, GENERIC_READ, FILE_SHARE_READ,0,OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL,0);
if(fhandle==NULL)ExitProcess(0);
rc=SetFilePointer(fhandle,10,0,METHOD);
if(rc==NULL)ExitProcess(0);
rc=ReadFile(fhandle,buffer,80,&cb,NULL);
if(!rc)ExitProcess(0);
cb+=len;
WriteFile(hstout,buffer,cb,&cbwl,NULL);
CloseHandle(fhandle);
getchar();
ExitProcess(0);
}
SetFilePointer,
DWORD WINAPI SetFilePointer(HANDLE hFile, LONG ib, PLONG lpDistanceToMoveHigh, DWORD metod);
hFile , ib , ( 32 ), metod , lpDistanceToMoveHigh , ( 4 NULL). DWORD. 1. FILE_BEGIN, FILE_CURRENT, FILE_END, .
#include <windows.h>
#include <wincon.h>
#include <stdio.h>
#define METHOD 0
void main()
{char buffer[100]="1234567890It was readed";
int len;
DWORD cb,cbwl;
HANDLE hstout,fhandle;
char fname[]="myresult.txt";
BOOL rc;
len=strlen(buffer);
hstout=GetStdHandle(STD_OUTPUT_HANDLE);
if(hstout==INVALID_HANDLE_VALUE)ExitProcess(0);
fhandle=CreateFile(fname, GENERIC_READ, FILE_SHARE_READ,0,OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL,0);
if(fhandle==NULL)ExitProcess(0);
rc=SetFilePointer(fhandle,10,0,METHOD);
if(rc==NULL)ExitProcess(0);
rc=ReadFile(fhandle,buffer,80,&cb,NULL);
if(!rc)ExitProcess(0);
cb+=len;
WriteFile(hstout,buffer,cb,&cbwl,NULL);
CloseHandle(fhandle);
getchar();
ExitProcess(0);
}
:
1. - MS Windows.
2. .
3