»Ë»Ñ Æ÷·³

C ¾ð¾î aio_write Áú¹®µå¸³´Ï´Ù.1

  • µ¿»ê¸À
  • µî·ÏÀÏ 2016-08-16 14:56
  • Á¶È¸¼ö 449

ºñµ¿±â IO »ç¿ëÀ» À§ÇØ aio_write »ç¿ëÇÏ·Á´Âµ¥¿ä.

 

Áö±ÝÀº ¸ÕÀú Á¦´ë·Î µ¿ÀÛÇÏ´ÂÁö È®ÀÎÀ» À§ÇØ

for¹®À» ÀÌ¿ëÇÏ¿© aio_write¸¦ È£ÃâÇÏ¿© 32K¾¿ 1024¹ø ½áÁָ鼭 ÆÄÀÏ 2°³¸¦ ÀÛ¼ºÇϵµ·Ï ÇÏ¿´½À´Ï´Ù.

¹öÆÛÀÇ ³»¿ëÀº ¹®ÀÚ A¸¸ ÀÖ±¸¿ä.

 

±×·±µ¥ ÆÄÀÏ °á°ú¸¦ º¸¸é ÆÄÀÏ È®ÀÎÇغ¸¸é aio_write¸¦ 1¹ø ´õ ¾²°Å³ª ¶Ç´Â ÆÄÀÏÀÇ ³»¿ëÀÌ ¾²·¹±â°ªÀ¸·Î ä¿öÁ® Àֳ׿ä.

ÀÌ·¯ÇÑ °ÍÀ» ÇØ°áÇÏ·Á¸é ¾î¶»°Ô ÇؾßÇÒ±î¿ä?

 

¾Æ·¡´Â º¯¼ö ¼±¾ðÀ» Á¦¿ÜÇÏ°í ÆÄÀÏ WRITE ÇÏ´Â ¼Ò½ºÀÔ´Ï´Ù.

 

sAlignedBuf = (char*)( ((long)sBuf) + (512 -  ((long)sBuf) % 512));   
memset( sAlignedBuf, 0x41, BUFFER_SIZE );
    
for( i = 0; i < FILE_CNT; i++ ) //FILE_CNT = 2;
{
        memset( &sAiocb[i], 0, sizeof(struct aiocb) );

        sAiocb[i].aio_buf = sAlignedBuf;
        sAiocb[i].aio_nbytes = BUFFER_SIZE; //32K
        
        snprintf( sTmpFileName[i],
                  FILE_PATH,
                  "testAio_%d",
                  i);

        unlink( sTmpFileName[i] );

        sFd[i] = open( sTmpFileName[i],
                       O_CREAT | O_RDWR | O_EXCL |
                       O_DIRECT | O_LARGEFILE,
                       S_IRUSR | S_IWUSR );

        sAiocb[i].aio_fildes = sFd[i];

        if( sFd[i] == -1 )
        {
            printf( TNAME " Error at open(): %s\n", strerror( errno ) );
            exit(1);
        }
}


for( j = 0; j < 1024; j++ )
{
        for( i = 0; i < 2; i++ )
        {
            if( sWrittenSize = aio_write( &sAiocb[i] ) == -1 )
            {
                printf( TNAME " Error at aio_write(): %s\n", strerror( errno ) );
                close( sFd[i] );
                exit(2);
            }
            
            sAiocb[i].aio_offset += sAiocb[i].aio_nbytes;
        }
}

 

0
ÃßõÇϱ⠴ٸ¥ÀÇ°ß 0
|
°øÀ¯¹öÆ°

´Ù¸¥ÀÇ°ß 0 Ãßõ 0 µ¿»ê¸À
  • ¾Ë¸² ¿å¼³, »óó ÁÙ ¼ö ÀÖ´Â ¾ÇÇÃÀº »ï°¡ÁÖ¼¼¿ä.
©¹æ »çÁø  
¡â ÀÌÀü±Û¡ä ´ÙÀ½±Û