흠...
예)./mv file1 file2
흠... ㅠㅠ 알고싶어요~ cp 까지는 구현이 가능한데 mv는 정말이지 머리가 터질것 같아요 ㅠㅠ 아무리 생각해도 답이 안나오네 ㅠㅠ 부탁합니다 ㅠㅠ
cp 하시고 rm하시면 되지 않나요?
ㅠㅠ 잘 모르겟어요 ㅠㅠ
#include <unistd.h> #include <sys/stat.h> #include <fcntl.h> #include <stdlib.h> int main() { char c; int in, out; in = open(“file.in”, O_RDONLY); out = open(“file.out”, O_WRONLY|O_CREAT, S_IRUSR | S_IWUSR); while(read(in, &c, 1) ==1 ) write(out, &c, 1); exit(0); }
요렇게 까지 해서 cp 는 해봤는데
low level function 이 무엇을 이야기 하는지 모르겠습니다만...man 2 rename 참고가 될런지요....
man 2 rename
man 2 unlink
해보시면 아실겁니다
참고로 이건 팁인데 해당 명령어가 어떤 시스템 콜을 쓰는지 보면
따라서 구현하기 편하죠
touch tmpfile
strace rm tmpfile
해보세요
rename()을 시도하시고
에러리턴을 봐서 다른 디바이스에 속한경우라면
cp에 썼던 코드를 사용하시고 unlink()를 호출하세요.
man 2 rename 하시면 EXDEV인가 다른 디바이스일 경우 셋팅되는 errno가 있을것입니다.
#include <unistd.h> #include <sys/stat.h> #include <fcntl.h> #include <stdlib.h> int main() { char c; int in, out; in = open(“file.in”, O_RDONLY); out = open(“file.out”, O_WRONLY|O_CREAT, S_IRUSR | S_IWUSR); while(read(in, &c, 1) ==1 ) write(out, &c, 1); exit(0); } 요렇게 까지 해서 cp 는 해봤는데
이것을 고쳐서..(소스 무단 사용 죄송.m(__)m) (low level function 이라는게 read랑 write를 뜻하는게 아닐까요??)
#include <sys/stat.h> #include <fcntl.h> #include <stdlib.h> #define MAX_BUF 1024 int main(int argc, char *argv[]) { char c; char buf[MAX_BUF]; int n; int in, out; if (argc != 3) { fprintf("%s file_name1 file_name2", argv[0]); exit(1); } in = open(argv[1], O_RDONLY); out = open(argv[2], O_WRONLY|O_CREAT, S_IRUSR | S_IWUSR); while(n = read(in, buf, MAX_BUF)) write(out, buf, n); close(in); close(out); remove(argv[2]); // <== 파일 삭제가 이함수인지 생각이 잘안남 -_-; exit(0); }
이게 과연 돌아갈런지.-_-;
에고 낼 셤이 3개인데 공부하러 휘리리릭~
아~~
바로 윗분 가르쳐준거 조금 제 형식으로 변형을 했어요... ㅋㅋㅋㅋ 다들 감사용 ~~
텍스트 포맷에 대한 자세한 정보
<code>
<blockcode>
<apache>
<applescript>
<autoconf>
<awk>
<bash>
<c>
<cpp>
<css>
<diff>
<drupal5>
<drupal6>
<gdb>
<html>
<html5>
<java>
<javascript>
<ldif>
<lua>
<make>
<mysql>
<perl>
<perl6>
<php>
<pgsql>
<proftpd>
<python>
<reg>
<spec>
<ruby>
<foo>
[foo]
cp 하시고 rm하시면 되지 않나요?
cp 하시고 rm하시면 되지 않나요?
ㅠㅠ 잘 모르겟어요 ㅠㅠ
ㅠㅠ
잘 모르겟어요 ㅠㅠ
[code:1]#include <unistd.h>#incl
요렇게 까지 해서 cp 는 해봤는데
low level function 이 무엇을 이야기 하는지 모르겠습니다만
low level function 이 무엇을 이야기 하는지 모르겠습니다만...
man 2 rename
참고가 될런지요....
man 2 unlink해보시면 아실겁니다참고로 이건 팁인데
man 2 unlink
해보시면 아실겁니다
참고로 이건 팁인데 해당 명령어가 어떤 시스템 콜을 쓰는지 보면
따라서 구현하기 편하죠
touch tmpfile
strace rm tmpfile
해보세요
rename()을 시도하시고에러리턴을 봐서 다른 디바이스에 속한경
rename()을 시도하시고
에러리턴을 봐서 다른 디바이스에 속한경우라면
cp에 썼던 코드를 사용하시고 unlink()를 호출하세요.
man 2 rename 하시면 EXDEV인가 다른 디바이스일 경우 셋팅되는 errno가 있을것입니다.
[quote="Anonymous"][code:1]#include <
이것을 고쳐서..(소스 무단 사용 죄송.m(__)m)
(low level function 이라는게 read랑 write를 뜻하는게 아닐까요??)
이게 과연 돌아갈런지.-_-;
에고 낼 셤이 3개인데 공부하러 휘리리릭~
아~~
호호 많이 도움이 됫어요~ 다들 감사 합니다.
바로 윗분 가르쳐준거 조금 제 형식으로 변형을 했어요...
ㅋㅋㅋㅋ
다들 감사용 ~~
댓글 달기