|
Facebook Joinc ±×·ì
Joinc QA »çÀÌÆ®
joinc´Â Firefox¿Í chrome¿¡¼ Å×½ºÆ® Çß½À´Ï´Ù. IE¿¡¼´Â Å×À̺íÀÌ ±úÁö°Å³ª À̹ÌÁö°¡ º¸ÀÌÁö ¾ÊÀ» ¼ö ÀÖ½À´Ï´Ù. ƯÈ÷ ±¸±Û DocsÀ̹ÌÁöÀÇ °æ¿ì ¿¢¹Úó¸®µÉ ¼ö ÀÖ½À´Ï´Ù.
write(2)ÆÄÀϱâ¼úÀÚ°¡ °¡¸®Å°´Â ÆÄÀÏ¿¡ ¾´´Ù. ÀÌ ÆÄÀϱâ¼úÀÚ´Â open(2), socket(2) µîÀ¸·Î
¾òÀ»¼ö ÀÖ´Ù.
#include <unistd.h>
ssize_t write(int fd, const void *buf, size_t count);
|
ù¹øÂ° ¾Æ±Ô¸ÕÆ®ÀÎ fd ´Â ¿¸°ÆÄÀÏ ±â¼úÀÚÀÌ´Ù. À̰ÍÀº º¸Åë open(2), socket(2) µîÀ¸·Î
¸¸µé¾îÁö¸ç, ¶§¶§·Î pipe(2) µîÀ¸·Î ¸¸µé¾îÁö±âµµ ÇÑ´Ù.
µÎ¹øÂ° ¾Æ±Ô¸ÕÆ®´Â fd ·Î ¾µ µ¥ÀÌŸÀ̸ç, count ´Â fd ¾µ
µ¥ÀÌŸÀÇ Å©±âÀÌ´Ù.
¼º°øÇÒ°æ¿ì ¾²¿©Áø ¹ÙÀÌÆ® ¸¸ÅÀÌ ¸®ÅϵȴÙ. 0ÀÌ¸é ¾²¿©Áø°ÍÀÌ ¾øÀ½À» ³ªÅ¸³»¸ç,
-1 Àϰæ¿ì´Â ¿¡·¯°¡ ¹ß»ýÇßÀ» °æ¿ìÀÌ´Ù. ¿¡·¯°¡ ¹ß»ýÇßÀ»°æ¿ì¿¡´Â errno ¿¡ Àû´çÇÑ
°ªÀÌ ¼³Á¤µÈ´Ù.
´Ù¾çÇÑ ¿øÀο¡ ÀÇÇØ¼ ¿¡·¯°¡ ¹ß»ýÇÒ¼ö ÀÖÀ¸¸ç ¾Æ·¡¿Í °°Àº ¿¡·¯ ¸Þ½ÃÁöµéÀÌ ÀÖ´Ù.
- EBADF
fd °¡ À¯È¿ÇÑ ÆÄÀÏ ±â¼úÀÚ°¡ ¾Æ´Ï°Å³ª ¾²¿©Áú¼ö ¾øµµ·Ï ¿·ÁÀÖÀ»°æ¿ì
- EINVAL
fd °¡ ¾²±â¿¡ Àû´çÇÏÁö ¾ÊÀº °´Ã¼¿Í ¿¬°áµÇ¾î ÀÖÀ»°æ¿ì
- EFAULT
buf °¡ Á¢±ÙÇÒ ¼ö ¾ø´Â ÁÖ¼Ò °ø°£À» °¡¸®Å°°í ÀÖÀ»¶§
- EPIPE
fd °¡ ³¡ÀÌ ´ÝÇôÁø ¼ÒÄÏÀ̳ª ÆÄÀÌÇÁ¿¡ ¿¬°áµÇ¾î ÀÖÀ»¶§.
¾²°í ÀÖ´Â ÇÁ·Î¼¼½º°¡ SIGPIPE signal¸¦ ¹Þ¾ÒÀ»¶§ ¹ß»ýÇÑ´Ù.
- EAGAIN
fd °¡ ºñºÀ¼â(O_NONBLOCK) ·Î ¿·ÈÀ»°æ¿ì, µ¥ÀÌÅ͸¦ ¾²±â À§ÇØ fd ¿Í
¿¬°áµÈ ÆÄÀÌÇÁ³ª ¼ÒÄÏ¿¡ °ø°£ÀÌ ¾øÀ»¶§, ¹ß»ýÇÑ´Ù. ºÀ¼â·Î ¿·ÈÀ»°æ¿ì¿¡´Â
¿¬°áµÈ ÆÄÀÌÇÁ³ª ¼ÒÄÏ¿¡ °ø°£ÀÌ ÀÖÀ»¶§±îÁö ºÀ¼âµÈ´Ù.
- EAGAIN
fd °¡ ºñºÀ¼â(O_NONBLOCK) ·Î ¿·ÈÀ»°æ¿ì, µ¥ÀÌÅ͸¦ ¾²±â À§ÇØ fd ¿Í
¿¬°áµÈ ÆÄÀÌÇÁ³ª ¼ÒÄÏ¿¡ °ø°£ÀÌ ¾øÀ»¶§, ¹ß»ýÇÑ´Ù. ºÀ¼â·Î ¿·ÈÀ»°æ¿ì¿¡´Â
¿¬°áµÈ ÆÄÀÌÇÁ³ª ¼ÒÄÏ¿¡ °ø°£ÀÌ ÀÖÀ»¶§±îÁö ºÀ¼âµÈ´Ù.
#include <fcntl.h>
#include <unistd.h>
#include <stdio.h>
struct data
{
int age;
char name[25];
};
int main()
{
int fd;
int n;
struct data mydata, readdata;
fd = open("data.txt", O_CREAT|O_RDWR);
if (fd == -1)
{
perror("open error : ");
}
mydata.age = 25;
strcpy(mydata.name, "hello");
n = write(fd, (void *)&mydata, sizeof(mydata));
close(fd);
}
|
ÀÌ ¿¹Á¦´Â data.txt ¶ó´Â ÆÄÀÏÀ» Àϱâ/¾²±â ¸ðµå·Î open ÇÑ ´ÙÀ½¿¡
data ±¸Á¶Ã¼¸¦ ÆÄÀÏ¿¡ Àû´Â ÇÁ·Î±×·¥ÀÌ´Ù.
|
|