/** @brief Entry into program @param argc Argument count @param argv Argument vector @return Success (or lackthereof) of program's execution */ int main(int argc, char **argv) { char* fileInfo; if ( argc != 2 ) { printf( "usage: %s filename", argv[0] ); } else { FILE *file = fopen( argv[1], "r" ); if ( file == 0 ) { printf( "Could not open file\n" ); return EXIT_FAILURE; } else { fileInfo = getMagicNumber(file); getFileType(fileInfo); } } free(fileInfo); return EXIT_SUCCESS; }
inline bool NdbReceiver::checkMagicNumber() const { bool retVal = (theMagicNumber == getMagicNumber()); #ifdef NDB_NO_DROPPED_SIGNAL if(!retVal){ abort(); } #endif return retVal; }
/*! \brief 接收但不处理数据 当有数据到来的时候,这个函数处理数据长度与魔数。\n 但它并不处理数据的内容而是将内容交给dataProcess()处理。\n \sa MagicNumber dataProcess() */ void JConnectionBase::on_socket_readyRead() { static int size=0; while(m_socket->bytesAvailable()>0) { if(size>0) { QByteArray data=m_socket->read(size); size=0; dataProcess(data); }else if(m_socket->bytesAvailable()>=(qint64)(sizeof(int)+sizeof(MagicNumber::JMagicNumber))){ QDataStream stream(m_socket); MagicNumber::JMagicNumber mn; stream>>mn; stream>>size; if(mn != getMagicNumber()) { qDebug()<<"magic number error:"<<metaObject()->className()<<mn<<getMagicNumber(); } } }