コード例 #1
0
ファイル: filetype.c プロジェクト: l50/pa06
/**
  @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;
}
コード例 #2
0
inline
bool 
NdbReceiver::checkMagicNumber() const {
  bool retVal = (theMagicNumber == getMagicNumber());
#ifdef NDB_NO_DROPPED_SIGNAL
  if(!retVal){
    abort();
  }
#endif
  return retVal;
}
コード例 #3
0
/*!
	\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();
			}
        }
    }