После того, как я пишу программу Qt, я запускаю отчет klocwork для моей программы Qt.И я обнаружил 1 ошибку, которую я не знаю, как ее решить.
Внутри моего mainprocess.cpp я вызвал функцию в getXML.cpp
mainprocess.cpp code:
getFile n;
n.getXML();
getXML.cpp code:
void getFile::getXML()
{
QString settingsFile = QApplication::applicationDirPath() + "/ini";
QSettings setting(settingsFile, QSettings::IniFormat);
setting.beginGroup("logSetting");
QString ftpPass = setting.value("ftpPass").toString();
QByteArray ftpUser;
ftpUser = globalFtp.toUtf8();
const char *ftpUser1 = ftpUser.constData();
QByteArray ftpIP;
ftpIP = globalFtpIP.toUtf8();
const char *ftpIP1 = ftpIP.constData();
QByteArray ftp;
ftp = ftpPass.toUtf8();
const char *ftpPass1 = ftp.constData();
ftp_t myftp(ftpIP1, 21);
myftp.login(ftpUser1, ftpPass1);
QString utcDate = "Stats_" + QDateTime::currentDateTimeUtc().toString("yyyyMMdd_hh") + "00_UTC";
QByteArray ba;
ba = utcDate.toUtf8();
const char *utcDate1 = ba.constData();
//char filepath[100] =
char filename[100] = "site.xml";
myftp.get_file(filename, utcDate1);
myftp.logout();
}
Внутри моих функций myftp.login и myftp.logout у меня есть создания sock_ctrl и sock_data, но я сразу же закрываю sock_ctrl и sock_data в концеfunction.
myftp.login function:
void ftp_t::login(const char *user_name, const char *pass)
{
char buf_request[255];
std::string str_server_ip;
std::string str_rsp;
create_socket(sock_ctrl, m_server_ip.c_str(), m_server_port);
get_response(sock_ctrl, str_rsp);
sprintf(buf_request, "USER %s\r\n", user_name);
send_request(sock_ctrl, buf_request);
get_response(sock_ctrl, str_rsp);
sprintf(buf_request, "PASS %s\r\n", pass);
send_request(sock_ctrl, buf_request);
get_response(sock_ctrl, str_rsp);
}
myftp.logout code:
void ftp_t::logout()
{
char buf_request[255];
std::string str_rsp;
sprintf(buf_request, "QUIT\r\n");
send_request(sock_ctrl, buf_request);
get_response(sock_ctrl, str_rsp);
close_socket(sock_ctrl);
}
Хотя я закрываю сокет, но все равно получаю ошибкуthis.
Строка 39, 72 ссылается на функцию myftp.login, строки 48 и 80 в отчете Klocwork ссылаются на функцию myftp.logout,Если какая-либо дополнительная информация необходима.Пожалуйста, дайте мне знать.Заранее спасибо