ÃÑ ÆäÀÌÁö ¼ö : 3224
![]()
|
Facebook Joinc ±×·ì
Joinc QA »çÀÌÆ®
![]()
Tweet
joinc´Â Firefox¿Í chrome¿¡¼ Å×½ºÆ® Çß½À´Ï´Ù. IE¿¡¼´Â Å×À̺íÀÌ ±úÁö°Å³ª À̹ÌÁö°¡ º¸ÀÌÁö ¾ÊÀ» ¼ö ÀÖ½À´Ï´Ù. ƯÈ÷ ±¸±Û DocsÀ̹ÌÁöÀÇ °æ¿ì ¿¢¹Úó¸®µÉ ¼ö ÀÖ½À´Ï´Ù. ¼³¸í
À¯´Ð½º Ç¥ÁØÇÔ¼ö¿¡´Â ÆÄÀÏÀ» º¹»çÇÔ¼ö¸¦ Áö¿øÇÏÁö ¾Ê´Â´Ù. link(2)¸¦ ÅëÇØ¼ Çϵ帵ũ¸¦ ¸¸µé ¼ö ÀÖÁö¸¸ ÆÄÀÏ º¹»ç¿Í´Â ¾ö¿¬È÷ Ʋ¸®¸ç Çϵ帵ũÀÎ °ü°è·Î ³×Æ®¿öÅ© ÆÄÀÏ ½Ã½ºÅÛÀ̳ª ´Ù¸¥ ÀåÄ¡»çÀÌ¿¡¼´Â ÀÌ¿ëÇÒ ¼ö°¡ ¾ø´Ù.
ÆÄÀÏ º¹»ç ÇÔ¼ö´Â ´ÜÁö open(2), read(2), write(2)¸¸ ÀÖÀ½ µÉ°Í °°Áö¸¸.. ±ÇÇÑ, ¼ÒÀ¯ÀÚµîÀ» ÀÏÄ¡½ÃÄÑÁà¾ß Çϱ⠶§¹®¿¡ ºÎ°¡ÀûÀÎ ¸î °¡Áö ½Ã½ºÅÛ ÇÔ¼öµéÀÌ Ãß°¡µÈ´Ù. »ç¿ë¹æ¹ýint copy(const char *src, const char *dst);
int main() { if ((copy("test.c", "test2.c") < 0) { exit(1); } exit(0); } ÄÚµå#include <unistd.h> #include <fcntl.h> #include <sys/types.h> #include <sys/stat.h> #include <stdio.h> #include <termios.h> // yes/no¸¦ ¹°¾îº»´Ù. // ºñÁ¤±Ô¸ðµå(NONE ICANON)¸ðµå·Î Å͹̳Π¼³Á¤À» º¯°æÇؼ // °³Ç๮ÀÚÀÇ ÀԷ¾øÀÌ ¹Ù·Î °á°ú°¡ Àû¿ëµÇµµ·Ï Çß´Ù. int yorno(char *prompt) { struct termios old_set, new_set; int loop = 1; char in; int retval; tcgetattr(0, &old_set); new_set = old_set; new_set.c_lflag &= (~ICANON); tcsetattr(0, TCSANOW, &new_set); while(loop) { printf("\n%s", prompt); in = getc(stdin); switch(in) { case 'y': case 'Y': retval = 1; loop = 0; break; case 'n': case 'N': retval = 0; loop = 0; break; default: break; } } tcsetattr(0, TCSANOW, &old_set); printf("\n"); return retval; } int copy(const char *src, const char *dst) { int src_fd, dst_fd; struct stat srcstat; char in; int n; char buf[1024] = {0x00,}; if ((src_fd = open(src, O_RDONLY)) <0 ) { fprintf(stdout, "Can not open src file : %s\n", src); return -1; } // ¿øº»ÆÄÀÏÀÇ mode¸¦ Àоî¿Â´Ù. // ³ªÁß¿¡ »ý¼ºµÉ ÆÄÀÏÀÇ mode¿Í ±ÇÇѺ¯°æ¿¡ »ç¿ëµÈ´Ù. fstat(src_fd, &srcstat); // ¸¸¾à ÆÄÀÏÀÌ Á¸ÀçÇÑ´Ù¸é // µ¤¾î¾µ°ÇÁö ¹°¾îº»´Ù. if (access(dst, F_OK) == 0) { if (!yorno("Overwrite file ? ")) { exit(0); } } // ÆÄÀÏÀ» »ý¼ºÇÑ´Ù. if ((dst_fd = open(dst, O_WRONLY|O_CREAT, srcstat.st_mode)) <0 ) { fprintf(stdout, "Can not open dst file : %s\n", dst); close(src_fd); return -1; } // ³»¿ëÀ» º¹»çÇÑ´Ù. while((n = read(src_fd, buf, 1024)) > 0) { write(dst_fd, buf, n); } // ÆÄÀÏÀÇ ¼ÒÀ¯ ±ÇÇÑÀ» º¯°æÇÑ´Ù. fchown(dst_fd, srcstat.st_uid, srcstat.st_gid); close(src_fd); close(dst_fd); return 0; } |
|
|
EmailÀ» ±âÀÔÇϸé, ´ñ±ÛÀÌ ¸ÞÀÏ·Î Àü´ÞµË´Ï´Ù. |
|