powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / помогите пожалуйста разобраться с ошибкой!!!
25 сообщений из 27, страница 1 из 2
помогите пожалуйста разобраться с ошибкой!!!
    #38041393
el92
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
это моя задача. Разработать распределенную систему обработки структурированных записей.
Создать процесс сервер, задачей которого является предоставление в совместное пользование нескольким процессам клиентам некоего структурированного хранилища записей – наподобие БД. БД представляет собой справочник контактов с полями: фамилия, имя, отчество, телефон, почтовый адрес. При этом сами данные должны храниться в плоском файле (использование какого либо существующего сервера БД запрещено). Сервер должен предоставлять синхронизированный доступ к одной и той же записи со стороны нескольких клиентов одновременно, корректно обрабатывать конфликты доступа.

программа - server. на этапе компиляции ошибок нет, но во время отладки возникает ошибка, на сколько я понимаю, файл не создается, не происходит считывание из файла.подскажите почему? и как устранить ошибку, пожалуйста)
вот непосредственно кусок кода, который этим занимается:
int _tmain(int argc, _TCHAR* argv[])
{
int i=0;
fstream base;
base.open(file, ios::in | ios::out | ios::binary);
Table* BD= new Table[1];
if (base.is_open())
{
base.seekg(0);
while(!base.eof())
{
//base.seekg(i*sizeof BD->table[1].row[0]);
base.read((char*)&BD->table[i].row, sizeof BD->table[1].row[0]);
i++;
}
BD->num=i;
if (base.eof())
base.clear();
else
{
cerr<<"Error in reading"<<file<<'\n';
exit(1);
}
}
else
{
cerr<<file<<" could not be opened"<<'\n';
exit(2);
}
for (size_t j=0; j<BD->num; j++)
{
BD->table[j].block=true;
BD->table[j].exist=1;
}

далее осуществляется связь с клиентом
и запись в файл

for(size_t j=0; i<BD->num;i++)
base.write((char*)&BD->table[j].row, sizeof BD->table[j].row[0]);
base.close();


вот еще структуры:
table.h
#pragma once
#include <string.h>
#define TSIZE 5000
#define MAX_CHAR 256

//typedef size_t mylock;

struct Row
{
size_t id;
char cols[5][MAX_CHAR];
} ;

struct RowS
{
bool block;
size_t num_client;
int exist;
Row row[1];
} ;

struct Table
{
size_t num;
RowS table[TSIZE];
} ;

FormatComand.h
#pragma once
#include <string.h>
#include "table.h"

struct FormatCommand
{
int type_command;
Row row[1];
size_t num_of_cols;
};

FormatAnswer.h
#pragma once
#include <string.h>
#include "table.h"

struct FormatAnswer
{
Row row[1];
int cod_error;
};
...
Рейтинг: 0 / 0
помогите пожалуйста разобраться с ошибкой!!!
    #38041471
pirovindos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
el92 но во время отладки возникает ошибка,
Какая?
...
Рейтинг: 0 / 0
помогите пожалуйста разобраться с ошибкой!!!
    #38041851
el92
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
pirovindos,
"прога.exe": Загружено: "C:\Windows\System32\WSHTCPIP.DLL", Невозможно найти или открыть файл PDB
Поток 'Поток Win32' (0x528) завершился с кодом -1073741749 (0xc000004b).
Программа "[2620] прога.exe: Машинный код" завершилась с кодом -1073741510 (0xc000013a).
это вот когда я еще клиент запускаю так происходит, а вот когда отдельно сервер то, возвращает машинный код 2 ( это как раз ошибка при открытии файла), никак не создается файл.
...
Рейтинг: 0 / 0
помогите пожалуйста разобраться с ошибкой!!!
    #38041886
pirovindos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
el92,
А какое отношение прога.exe имеет к server.cpp?

P.S. Оформите код в теги src, нечитабельно.
...
Рейтинг: 0 / 0
помогите пожалуйста разобраться с ошибкой!!!
    #38041889
pirovindos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
el92 а вот когда отдельно сервер то, возвращает машинный код 2
А вот это поподробнее..
...
Рейтинг: 0 / 0
помогите пожалуйста разобраться с ошибкой!!!
    #38041921
el92
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
pirovindos,
[src c++ ]
int _tmain(int argc, _TCHAR* argv[])
{
int i=0;
fstream base;
base.open(file, ios::in | ios::out | ios::binary);
Table* BD= new Table[1];
if (base.is_open())
{
base.seekg(0);
while(!base.eof())
{
//base.seekg(i*sizeof BD->table[1].row[0]);
base.read((char*)&BD->table[i].row, sizeof BD->table[1].row[0]);
i++;
}
BD->num=i;
if (base.eof())
base.clear();
else
{
cerr<<"Error in reading"<<file<<'\n';
exit(1);
}
}
else
{
cerr<<file<<" could not be opened"<<'\n';
exit(2);
}
for (size_t j=0; j<BD->num; j++)
{
BD->table[j].block=true;
BD->table[j].exist=1;
}

далее осуществляется связь с клиентом
и запись в файл

for(size_t j=0; i<BD->num;i++)
base.write((char*)&BD->table[j].row, sizeof BD->table[j].row[0]);
base.close();


вот еще структуры:
table.h
#pragma once
#include <string.h>
#define TSIZE 5000
#define MAX_CHAR 256

//typedef size_t mylock;

struct Row
{
size_t id;
char cols[5][MAX_CHAR];
} ;

struct RowS
{
bool block;
size_t num_client;
int exist;
Row row[1];
} ;

struct Table
{
size_t num;
RowS table[TSIZE];
} ;

FormatComand.h
#pragma once
#include <string.h>
#include "table.h"

struct FormatCommand
{
int type_command;
Row row[1];
size_t num_of_cols;
};

FormatAnswer.h
#pragma once
#include <string.h>
#include "table.h"

struct FormatAnswer
{
Row row[1];
int cod_error;
};

[/src c++ ]
...
Рейтинг: 0 / 0
помогите пожалуйста разобраться с ошибкой!!!
    #38041936
el92
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
[src c++ ]
int _tmain(int argc, _TCHAR* argv[])
{
int i=0;
fstream base;
base.open(file, ios::in | ios::out | ios::binary);
Table* BD= new Table[1];
if (base.is_open())
{
base.seekg(0);
while(!base.eof())
{
//base.seekg(i*sizeof BD->table[1].row[0]);
base.read((char*)&BD->table[i].row, sizeof BD->table[1].row[0]);
i++;
}
BD->num=i;
if (base.eof())
base.clear();
else
{
cerr<<"Error in reading"<<file<<'\n';
exit(1);
}
}
else
{
cerr<<file<<" could not be opened"<<'\n';
exit(2);
}
for (size_t j=0; j<BD->num; j++)
{
BD->table[j].block=true;
BD->table[j].exist=1;
}

далее осуществляется связь с клиентом
и запись в файл

for(size_t j=0; i<BD->num;i++)
base.write((char*)&BD->table[j].row, sizeof BD->table[j].row[0]);
base.close();


вот еще структуры:
table.h
#pragma once
#include <string.h>
#define TSIZE 5000
#define MAX_CHAR 256

//typedef size_t mylock;

struct Row
{
size_t id;
char cols[5][MAX_CHAR];
} ;

struct RowS
{
bool block;
size_t num_client;
int exist;
Row row[1];
} ;

struct Table
{
size_t num;
RowS table[TSIZE];
} ;

FormatComand.h
#pragma once
#include <string.h>
#include "table.h"

struct FormatCommand
{
int type_command;
Row row[1];
size_t num_of_cols;
};

FormatAnswer.h
#pragma once
#include <string.h>
#include "table.h"

struct FormatAnswer
{
Row row[1];
int cod_error;
};

[/src c++ ]
...
Рейтинг: 0 / 0
помогите пожалуйста разобраться с ошибкой!!!
    #38041943
el92
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
pirovindosel92,
А какое отношение прога.exe имеет к server.cpp?

P.S. Оформите код в теги src, нечитабельно.

прога- это клиент, который осуществляет запрос, сервер получает запрос и обрабатывает его.
...
Рейтинг: 0 / 0
помогите пожалуйста разобраться с ошибкой!!!
    #38041953
pirovindos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
int _tmain(int argc, _TCHAR* argv[])
{
int i=0;
fstream base;
base.open(file, ios::in | ios::out | ios::binary);
Table* BD= new Table[1];
if (base.is_open())
{
base.seekg(0);
while(!base.eof())
{
//base.seekg(i*sizeof BD->table[1].row[0]);
base.read((char*)&BD->table[i].row, sizeof BD->table[1].row[0]);
i++;
}
BD->num=i;
if (base.eof())
base.clear();
else
{
cerr<<"Error in reading"<<file<<'\n';
exit(1);
}
}
else
{
cerr<<file<<" could not be opened"<<'\n';
exit(2);
}
for (size_t j=0; j<BD->num; j++)
{
BD->table[j].block=true;
BD->table[j].exist=1;
}

далее осуществляется связь с клиентом
и запись в файл

for(size_t j=0; i<BD->num;i++)
base.write((char*)&BD->table[j].row, sizeof BD->table[j].row[0]);
base.close();


вот еще структуры:
table.h
#pragma once
#include <string.h>
#define TSIZE 5000
#define MAX_CHAR 256

//typedef size_t mylock;

struct Row
{
size_t id;
char cols[5][MAX_CHAR];
} ;

struct RowS
{
bool block;
size_t num_client;
int exist;
Row row[1];
} ;

struct Table
{
size_t num;
RowS table[TSIZE];
} ;

FormatComand.h
#pragma once
#include <string.h>
#include "table.h"

struct FormatCommand
{
int type_command;
Row row[1];
size_t num_of_cols;
};

FormatAnswer.h
#pragma once
#include <string.h>
#include "table.h"

struct FormatAnswer
{
Row row[1];
int cod_error;
};
...
Рейтинг: 0 / 0
помогите пожалуйста разобраться с ошибкой!!!
    #38041981
pirovindos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
el92 а вот когда отдельно сервер то, возвращает машинный код 2
А вот это поподробнее..
...
Рейтинг: 0 / 0
помогите пожалуйста разобраться с ошибкой!!!
    #38042007
el92
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
pirovindosel92,
А какое отношение прога.exe имеет к server.cpp?

P.S. Оформите код в теги src, нечитабельно.
если вам нетрудно, посмотрите там прикрепленный файл, там написаны все подключенные библиотеки и глоюальные константы
...
Рейтинг: 0 / 0
помогите пожалуйста разобраться с ошибкой!!!
    #38042012
el92
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
pirovindosel92 а вот когда отдельно сервер то, возвращает машинный код 2
А вот это поподробнее..

вот только что опять запустила, и теперь выдает вот такую ошибку
Поток 'Поток Win32' (0x13c4) завершился с кодом -1073741510 (0xc000013a).
Программа "[3084] server.exe: Машинный код" завершилась с кодом -1073741510 (0xc000013a).
...
Рейтинг: 0 / 0
помогите пожалуйста разобраться с ошибкой!!!
    #38042028
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
el92(0xc000013a)
Код: sql
1.
#define STATUS_CONTROL_C_EXIT            ((DWORD   )0xC000013AL)


Ы?..
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
помогите пожалуйста разобраться с ошибкой!!!
    #38042072
pirovindos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
el92,

Попробуйте уменьшить
#define TSIZE 5000
до 50, такая же ошибка будет?
...
Рейтинг: 0 / 0
помогите пожалуйста разобраться с ошибкой!!!
    #38042073
el92
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry Sibiryakovel92(0xc000013a)
Код: sql
1.
#define STATUS_CONTROL_C_EXIT            ((DWORD   )0xC000013AL)


Ы?..
не не помогло(
...
Рейтинг: 0 / 0
помогите пожалуйста разобраться с ошибкой!!!
    #38042077
pirovindos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
el92,
И не плохо бы узнать на какой строке кода случается крах.
...
Рейтинг: 0 / 0
помогите пожалуйста разобраться с ошибкой!!!
    #38042080
el92
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
pirovindosel92,

Попробуйте уменьшить
#define TSIZE 5000
до 50, такая же ошибка будет?
похоже поток поменялся, а в остальном тоже самое Поток 'Поток Win32' (0x17e4) завершился с кодом -1073741749 (0xc000004b).
Программа "[1576] server.exe: Машинный код" завершилась с кодом -1073741510 (0xc000013a).
...
Рейтинг: 0 / 0
помогите пожалуйста разобраться с ошибкой!!!
    #38042088
el92
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
pirovindos, и вот еще про то, что говорила с самого начала Программа "[5084] server.exe: Машинный код" завершилась с кодом 2 (0x2).
а вот по поводу строки, как мне ее определить?
...
Рейтинг: 0 / 0
помогите пожалуйста разобраться с ошибкой!!!
    #38042118
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
el92вот еще про то, что говорила с самого начала Программа "[5084] server.exe:
Машинный код" завершилась с кодом 2 (0x2).
Ну дык кто-то написал это: exit(2);
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
помогите пожалуйста разобраться с ошибкой!!!
    #38042161
el92
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry Sibiryakov, это да, но я не понимаю, почему не создается файл, ведь он же не открывается, потому что не создается.
...
Рейтинг: 0 / 0
помогите пожалуйста разобраться с ошибкой!!!
    #38042220
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
el92но я не понимаю, почему не создается файл
Существуют такие вещи под названием "отладчик". Попробуй воспользоваться одной из них.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
помогите пожалуйста разобраться с ошибкой!!!
    #38042222
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ещё бывает полезно вместо сообщений "Shit happened" выводить точное сообщение об ошибке
или по крайней мере её код. RTFM errno или что там в плюсах вместо него...
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
помогите пожалуйста разобраться с ошибкой!!!
    #38042248
m_Sla
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
el92Dimitry Sibiryakov, это да, но я не понимаю, почему не создается файл, ведь он же не открывается, потому что не создается.Как-то так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
    fstream base;
    base.open(file, ios::in | ios::out | ios::binary);
    if (!base.is_open())
    {
        //если файл не существует, то создаем файл
        cout<<"File is created"<<endl;
        base.open(file, ios::out);
        base.close();
        // открываем созданный файл
        base.open(file, ios::in | ios::out | ios::binary);
    }

    if (base.is_open())
    {
        cout<<"File is opened"<<endl;
    }
...
Рейтинг: 0 / 0
помогите пожалуйста разобраться с ошибкой!!!
    #38042275
el92
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry SibiryakovЕщё бывает полезно вместо сообщений "Shit happened" выводить точное сообщение об ошибке
или по крайней мере её код. RTFM errno или что там в плюсах вместо него...

lда знаю, только вот я с отладчиком никак не подружусь
...
Рейтинг: 0 / 0
помогите пожалуйста разобраться с ошибкой!!!
    #38042276
el92
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
m_Slael92Dimitry Sibiryakov, это да, но я не понимаю, почему не создается файл, ведь он же не открывается, потому что не создается.Как-то так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
    fstream base;
    base.open(file, ios::in | ios::out | ios::binary);
    if (!base.is_open())
    {
        //если файл не существует, то создаем файл
        cout<<"File is created"<<endl;
        base.open(file, ios::out);
        base.close();
        // открываем созданный файл
        base.open(file, ios::in | ios::out | ios::binary);
    }

    if (base.is_open())
    {
        cout<<"File is opened"<<endl;
    }

спасибо, вроде сработало, теперь попытаюсь записать в файл и считать)
...
Рейтинг: 0 / 0
25 сообщений из 27, страница 1 из 2
Форумы / C++ [игнор отключен] [закрыт для гостей] / помогите пожалуйста разобраться с ошибкой!!!
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]