실행되면 자신이 받은 매개 변수 옵션을 그대로 파일로 출력하는 프로그램을 만들어 봤습니다.

    인터넷을 검색해봤지만 있을 법하면서도 없더라구요

    최근에 어떤 소프트웨어 AA.exe 를 뜯어고치려고 했는데, 그 소프트웨어는 CLI로 되어있는 핵심 프로그램 AA_cli.exe의 GUI 역할만 하고 있더라구요.

    실행할 때마다 AA_cli.exe에게 명령만 날리는거죠...

    예를 들자면... AA.exe를 켜고 열기 눌러 파일을 고른다음 변환을 누르면 그냥 AA_cli.exe한테

    AA_cli /file original.txt after.txt 

    같은 명령만 날리도록 설계되어 있는 겁니다.

    그럴 때 그 동작을 분석하기 위해 만들었습니다.

    #include <stdio.h>
    #include <string.h>
    int main(int argc, char *argv[])      // 옵션의 개수와 옵션 문자열을 배열로 받음
    {
        char filename[999];
        sprintf(filename,"%s_result.log",strrchr(argv[0], '\\')+1); //+1은 경로표시문자를 제거하기 위해 사용된다
        FILE* arg = fopen(filename, "w+");
        for (int i = 0; i < argc; i++)    // 옵션의 개수만큼 반복
        {
            printf("%s ", argv[i]);      // 옵션 문자열 출력
            fprintf(arg, "%s ", argv[i]);
        }
        return 0;
    }
    

    첨부된 exe파일을 사용하거나 위 파일을 사용하세요.

    test.exe
    0.03MB
    main.cpp
    0.00MB

    명령줄이나 프로그램에서 main.exe /Hello World! 등을 실행하면

    바로 옆에 main.exe_result.log 만들어 main.exe /Hello World!가 기록될 것입니다.

    이 정보가 유용하기를 바랍니다.

    Posted by Kamilake