.


:




:

































 

 

 

 


Define STD_ERROR_HANDLE (DWORD)-12.




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





:


: 2016-12-06; !; : 833 |


:

:

,
==> ...

1753 - | 1521 -


© 2015-2024 lektsii.org - -

: 0.014 .