Á¶°¢ ÄÚµå : /dev/randomÀ» ÀÌ¿ëÇÑ Random »ý¼ºÇÔ¼ö
ÃÑ ÆäÀÌÁö ¼ö : 3224

Àüü ÇÔ¼ö/¿ë¾î»çÀü
Facebook Joinc ±×·ì   Joinc QA »çÀÌÆ®
ÇöÀçÀ§Ä¡ : Code>C>random_read



joinc´Â Firefox¿Í chrome¿¡¼­ Å×½ºÆ® Çß½À´Ï´Ù. IE¿¡¼­´Â Å×À̺íÀÌ ±úÁö°Å³ª À̹ÌÁö°¡ º¸ÀÌÁö ¾ÊÀ» ¼ö ÀÖ½À´Ï´Ù. ƯÈ÷ ±¸±Û DocsÀ̹ÌÁöÀÇ °æ¿ì ¿¢¹Úó¸®µÉ ¼ö ÀÖ½À´Ï´Ù.

¼³¸í

·£´ø°ªÀº ƯÈ÷ º¸¾È¿µ¿ª¿¡¼­ ³Î¸® »ç¿ëµÈ´Ù. ¿¹ÃøÇϱâ Èûµé¾î¾ß ÇÑ´Ù´Â º¸¾ÈÀÇ ¿ä±¸Á¶°ÇÀ» ¸¸Á·½Ãų ¼ö Àֱ⠶§¹®À¸·Î, ·£´ýÀ̶ó´Â ¿ë¾î¿¡´Â ¿¹ÃøÀÌ Èûµé´Ù¶ó´Â Àǹ̰¡ ³»Æ÷µÇ¾î Àֱ⠶§¹®ÀÌ´Ù. °£´ÜÇÑ ·£´ý°ªÀº random(2)ÇÔ¼ö¸¦ »ç¿ëÇϱ⵵ Çϴµ¥, random ÇÔ¼ö´Â ·£´ý½Ãµå °ª¿¡ Á¾¼ÓÀûÀ̶ó´Â ¹®Á¦¸¦ °¡Áø´Ù. ·£´ý½Ãµå°¡ ¿¹Ãø°¡´ÉÇØÁö±â ¶§¹®ÀÌ´Ù.

¸®´ª½º´Â /dev/random ÀåÄ¡¸¦ ÀÌ¿ëÇØ¼­ ·£´ý°ªÀ» ¾ò¾î¿Ã ¼ö ÀÖ´Ù. ÀÌ ÀåÄ¡´Â ÀåÄ¡ÀÇ ³ëÀÌÁîÀÇ °ªÀ» ÃøÁ¤Çؼ­ ·£´ý°ªÀ» ¸¸µé¹Ç·Î ÈξÀ ´õ ¿¹ÃøÇϱâ Èûµç ·£´ý°ªÀ» °¡Á®¿Ã ¼ö ÀÖ´Ù. °ü·ÃµÈ ÀÚ¼¼ÇÑ ³»¿ëÀº random°ª ¸¸µé±â¸¦ Âü°íÇÏÀÚ.

»ç¿ë¹æ¹ý

int random_get(void *buf, size_t size) 
 
  1. buf : ·£´ý°ªÀÌ ÀúÀåµÈ´Ù.
  2. size : ÁÖ¾îÁø Å©±â¸¸Å­ buf·Î º¹»çÇÑ´Ù.

int main() 
{ 
    int n; 
    unsigned long int value; 
    n = random_get((void *)&value, 4); 
    printf("%d %lu\n", n, value); 
} 
 

ÄÚµå

int random_get(void *buf, size_t size) 
{ 
    int fd; 
    int n = 0; 
    fd = open("/dev/random", O_RDONLY); 
    while( n < size) 
    { 
        n += read(fd, buf, size - n); 
    } 
    close(fd); 
    return n; 
} 
 

category_C ÄÚµå
category__200
EmailÀ» ±âÀÔÇϸé, ´ñ±ÛÀÌ ¸ÞÀÏ·Î Àü´ÞµË´Ï´Ù.