본문 바로가기
일상

[C,일상] fread, fwrite 실생활 응용 (Window는 fork() 가 안된다)

by IT황구 2021. 8. 19.
728x90
반응형

태그는 C가 아닌 일상이다.

일상생활에 쓰이는 문제를 해결했기 때문.

1. 백준 문제를 푼다.

2. /BOJ 라는 폴더에 새 텍스트를 만든다.

3. 내가 푼 소스를 그 텍스트에 저장한다

4. 제목을 문제번호. 문제이름 (특징) 이렇게 쓴다.

이 과정을 항상 손가락으로 하다가.. 요즘은 VSC로 푸는데 이 과정을 한번에 할 수 있으면 편하겠다는 생각을 했다.

바로 파일로 만들어주면 terminal에서 커밋도 편하니까..

최대 100만글자 까지 복사해준다.

#include<stdio.h>
#include<stdlib.h>
// 코드를 불러와서 원하는 제목으로 저장해줍니다.
#define MAX 100000
char text[MAX];
int main(int argc, char** argv)
{
    if(argc != 3)
    {
        printf("command error : ./a codeFileName newFileName\n");
        exit(1);
    }
    FILE* fpr;
    FILE* fpw;
    fpr = fopen(argv[1],"r");
    fpw = fopen(argv[2],"w");

    if(fpr == NULL)
    {
        printf("file name error\n");
        exit(1);
    }
    int size;
    size = fread(text,1,MAX,fpr);
    fwrite(text,1,size,fpw);
    
    fclose(fpw);
    fclose(fpr);
    return 0;
}

이렇게 컴파일을 해준다.

3번째 argument에는 띄어쓰기가 있으므로 ""로 감싸주어야 한다.

이렇게 텍스트 파일이 생긴다.

휴.. 마음이 편해지고 생산성이 좋아졌다.

*****

execv 같은 system call로도 짜보려고 했는데, 윈도우는 fork() 함수가 되질 않는다.

이걸 의외로 처음 알았는데, process.h 의 spawn() 이런 함수로 한다고 한다.

WSL 왜 쓰는지 알 것 같다. 윈도우가 슬슬 쓰레기같다고 느끼는중..

그럼 이만!!!

저건 윈도우,리눅스 다 컴파일이 된다.

728x90
반응형