1년만의 복귀 + 복귀작 코드

#include <stdio.h>
#include <stdlib.h>
#include <string.h>


int main(void)
{
    FILE* strm = NULL;
    char* bufstr;
    int count=0; int prior;int pridir;
    char currdir[257];
    char element[33]={0};
    char comstr[1025]={0};

    bufstr= malloc(4*1024*sizeof(char));

    system("ls>/tmp/excomp.txt -R \"/usr/home/intelli21c/cpppp examples\"");
    strm=fopen("/tmp/excomp.txt", "r");
    while((bufstr[count]=fgetc(strm))!=EOF) count++;
    bufstr[count]=0;
    fclose(strm);


    count=0;
    while(1)
    {
        
        if(bufstr[count]=='\n'){
            
            count++;
            continue;
        }
        pridir=count;
        while(bufstr[count]!=':') count++;
        memcpy(currdir, bufstr+pridir, count-pridir);
        currdir[count-pridir]=NULL;
        printf("excomp> Working on: %s\n", currdir);
        count+=2;

        while(1)
        {
            prior=count;
            while(bufstr[count]!='\n'&&bufstr[count]!='/'&&bufstr[count]!=NULL) count++;
            if(bufstr[count]=='\n'){
                if((count-prior)<2) goto skip;
                memcpy(element, bufstr+prior, count-prior);                
                element[count-prior]=0;
                if(strcmp("cpp", element+strlen(element)-3)) goto skip;

                strcpy(comstr, "c++ -o \"/");
                strcat(comstr, currdir);
                strcat(comstr, "/");
                strcat(comstr, element);
                strcat(comstr, ".elf\" \"/");
                strcat(comstr, currdir);
                strcat(comstr, "/");
                strcat(comstr, element);
                strcat(comstr, "\"");
                printf("excomp> %s\n", comstr);
                system(comstr);

skip:
                count++;
                continue;
            }

            else if(bufstr[count]=='/')
            {
                count++;
                break;
            } 

            else if(bufstr[count]==NULL)
            {
                puts("excomp> DONE!!");
                goto term;
            }
        }
    }
term:
    free(bufstr);
    return 0;
}

바로 예제 컴파일하는 코드입니다.


… …

안녕하세요! 1년 즈음만에 돌아온 아야입니다. 아직은 발표까지 여유가 있는 참이라, 다시 개발 공부 좀 제대로 시작하려고, 기왕이면 다시 기본부터 하려고, c++ 기초 플러스 책을 보려니, 시작하기 전에 보니까, 예제 좀 이리저리 만지면서 돌려보고 싶은데 전부 다 컴파일도 안 되어있던 겁니다!

그래서 한 번 다시 감이나 잡아 보자, 하고 예제를 컴파일하는 c 코드를 짜왔습니다.(부팅 과정 같기도 하네요)
정상적인 사람이라면 make, 쉘 스크립트, 아니면 못해도 파이썬으로 몇 분 만에 끝내겠지만, 그런 거 하나 모르는 저는 고생 좀 생으로 했습니다. 처음에 1-2시간이면 되겠거니 했는데 끝나고 보니 5시간이나 되어 버렸습니다. 그래도 처음 원한 대로 감은 다시 잡은 듯 합니다.

+P.S. 지금 열어보니 예제마다 실행결과가 다 있네요. 이게 뭔…

4 Likes

좋은 결과 있으시길 바래요