p3m4ni
جمعه 29 شهریور 1392, 21:01 عصر
سلام
این از کد:
#include "stdafx.h"
#include <Windows.h>
#include <omp.h>
char str[20];
INT64 i;
int main()
{
LPCWSTR NAME = LPCWSTR(str);
HANDLE hAppend;
DWORD dwBytesToWrite ,dwPos;
DWORD dwBytesWritten = 0;
hAppend = CreateFile(L"login.txt" ,
GENERIC_WRITE,
0, // do not share
NULL,
OPEN_ALWAYS,
FILE_ATTRIBUTE_NORMAL,
NULL);
#pragma omp parallel num_threads(4) private(i)
{
#pragma omp for ordered
for( i=0; i<=MAXINT32;i++)
{
sprintf_s(str,"%x|%x\r\n",i);
dwPos = SetFilePointer(hAppend, 0, NULL, FILE_END);
LockFile(hAppend, dwPos, 0, strlen(str), 0);
WriteFile(
hAppend,
str,
strlen(str),
&dwBytesWritten,
NULL
);
}
}
}
و اینم قسمتی از خروجیم:
1ee5 | 60000000
1ee6 | 60000000
1ee7 | 60000000
1ee8 | 60000000
1ee9 | 60000000
1eea | 60000000
0 | | 60000000
0 | 40000000
1eed | 600000001 | 40000000
2 | 40000000
1 | 40000000
1eee | 60000000
1eef | 60000000
1ef0 | 60000000
1ef1 | 60000000
3 | 40000000
1ef 40000000
4 | 40000000
2 | 0
3 | 0
4 | 0
یعنی کلا قاط زده!!!!
جای 4 بایت بالا و پایین رو موقع خوندن باید عوض کرد البته...حالا من با پایپ جداشون کردم .
جای بایتهای پایین تا اینجا درست بوده و لی بالایی ها کلا مشکل دارن.
مشکل کجاست؟
این از کد:
#include "stdafx.h"
#include <Windows.h>
#include <omp.h>
char str[20];
INT64 i;
int main()
{
LPCWSTR NAME = LPCWSTR(str);
HANDLE hAppend;
DWORD dwBytesToWrite ,dwPos;
DWORD dwBytesWritten = 0;
hAppend = CreateFile(L"login.txt" ,
GENERIC_WRITE,
0, // do not share
NULL,
OPEN_ALWAYS,
FILE_ATTRIBUTE_NORMAL,
NULL);
#pragma omp parallel num_threads(4) private(i)
{
#pragma omp for ordered
for( i=0; i<=MAXINT32;i++)
{
sprintf_s(str,"%x|%x\r\n",i);
dwPos = SetFilePointer(hAppend, 0, NULL, FILE_END);
LockFile(hAppend, dwPos, 0, strlen(str), 0);
WriteFile(
hAppend,
str,
strlen(str),
&dwBytesWritten,
NULL
);
}
}
}
و اینم قسمتی از خروجیم:
1ee5 | 60000000
1ee6 | 60000000
1ee7 | 60000000
1ee8 | 60000000
1ee9 | 60000000
1eea | 60000000
0 | | 60000000
0 | 40000000
1eed | 600000001 | 40000000
2 | 40000000
1 | 40000000
1eee | 60000000
1eef | 60000000
1ef0 | 60000000
1ef1 | 60000000
3 | 40000000
1ef 40000000
4 | 40000000
2 | 0
3 | 0
4 | 0
یعنی کلا قاط زده!!!!
جای 4 بایت بالا و پایین رو موقع خوندن باید عوض کرد البته...حالا من با پایپ جداشون کردم .
جای بایتهای پایین تا اینجا درست بوده و لی بالایی ها کلا مشکل دارن.
مشکل کجاست؟