Windows에서 cmd 읽기 및 쓰기

zzy

system("java .....")VC ++ 코드를 사용 하여 cmd에서 Java 앱을 실행했습니다.

자바 앱은 cmd에서 서버를 실행하고 콘솔에 정보를 출력합니다. cmd에서 "dir"명령을 실행하는 것처럼 명령을 입력 할 수도 있습니다.

이제 프로그램에서 모든 출력을 얻고 C ++ 코드를 사용하여 Java 앱에 전송 된 명령을 작성하고 싶습니다.

그러나 system()Java 앱을 중지 할 때까지 반환되지 않는 것으로 나타났습니다. 합리적입니다. 그리고이를 피하는 방법은 무엇입니까?

그리고 가장 큰 문제는 출력을 얻고 명령을 작성하는 방법을 모른다는 것입니다. 누구나 방법을 줄 수 있습니까?

감사합니다!

PS 자바 앱의 코드는 변경할 수 없습니다.

-------------------------------------- 나는 진전이 있었다 -------- ------------

int main()
{
    char psBuffer[256];
    FILE* output = _popen("java xxxx.jar", "rt" );

    if(output == NULL)
        return 0;

    while(fgets(psBuffer, 256, output))
    {
        printf(psBuffer);
    }

    if (feof( output))
    {
        printf( "\nProcess returned %d\n", _pclose( output ) );
    }
    else
    {
        printf( "Error: Failed to read the pipe to the end.\n");
    }

    system("pause");
    return 0;
}

"dir"을 사용하면 완벽하게 작동하지만 java를 사용할 때 psBuffer는 항상 아무것도 아니며 Java 앱의 출력은 정상적으로 출력됩니다. 파이프가 Java의 출력을 리디렉션 할 수 없습니까?


내 코드를 변경하고 일부 Java 명령을 완벽하게 실행합니다.

FILE* output = _popen("java -version 2>&1", "rt" );

하지만 .jar을 실행할 때 실패했습니다. .jar의 코드를 읽고 출력이 .Java에 java.util.logging.Logger.info()익숙하지 않습니다. info()cmd 단위로 작업량을 어떻게 처리 합니까?

감사합니다!


마지막으로 위의 마지막 코드가 올바르게 작동한다는 것을 알았습니다. 그러나 Java 앱의 원본 출력이 리디렉션되지 않았습니다. 정상적으로 표시되지만 버퍼가 원하는 출력을 올바르게 수신했습니다. 어쨌든 문제를 해결했습니다. 모두 감사합니다 !!!

패로우 다이스

리디렉션 된 입력 및 출력을 사용하여 자식 프로세스 만들기 MSDN 문서에서는 이를 수행하는 방법을 설명합니다. 통과해야 할 코드가 상당히 많지만 원하는 작업을 수행 할 수 있고이를 완전히 제어 할 수 있습니다.

반면에 _popen을 사용하는 것이 훨씬 쉽지만 많은 제어 권한이 없습니다. 얼마나 많은 코드를 작성할 것인지에 대한 정확한 요구 사항에 따라 다릅니다. :).

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

C에서 파일 쓰기 및 읽기

분류에서Dev

QTableView에서 파일 읽기 및 쓰기

분류에서Dev

haskell에서 파일 읽기 및 쓰기

분류에서Dev

c에서 파일 읽기 및 쓰기

분류에서Dev

C에서 파일 읽기 및 쓰기

분류에서Dev

Windows 및 Android 장치에서 NFC 태그 쓰기 및 읽기

분류에서Dev

QDataSteam에 QByteArray 읽기 및 쓰기

분류에서Dev

Tensorflow 읽기 및 BigQuery에 쓰기

분류에서Dev

C # CMD에 서버 쿼리 보내기 및 출력 읽기

분류에서Dev

읽기 전용 필드에서 동시 읽기 및 공유 객체의 읽기 / 쓰기 필드에 쓰기

분류에서Dev

Windows에서 텍스트 파일 읽기 및 C로 Linux 서버에 쓰기

분류에서Dev

mongodb 원격 기반에서 읽기 및 쓰기 불가능

분류에서Dev

Java로 Windows 명령 프롬프트에 쓰기 및 읽기

분류에서Dev

Flutter에서 Firebase 문서에 중첩 된 맵 쓰기 및 읽기

분류에서Dev

ndarray 쓰기 및 읽기

분류에서Dev

arduino 쓰기 및 읽기

분류에서Dev

Windows + VisualC에서 휘발성 읽기 및 쓰기가 원자 적입니까?

분류에서Dev

C ++를 사용하여 Windows에서 암호화 된 폴더 읽기 및 쓰기

분류에서Dev

PDF / A 문서에서 xml 메타 데이터 읽기 및 쓰기

분류에서Dev

소켓에서 동시에 읽기 및 쓰기

분류에서Dev

Excel에서 데이터 읽기 및 목록에 쓰기

분류에서Dev

C #에서 파일 병렬 읽기 및 쓰기

분류에서Dev

명명 된 파이프에서 C 읽기 및 쓰기

분류에서Dev

OCaml에서 메모리 매핑 파일 쓰기 및 읽기

분류에서Dev

Python 파일에서 변수 쓰기 및 읽기

분류에서Dev

My.Resources에서 문자열 읽기 및 쓰기

분류에서Dev

PhantomJS에서 쿠키를 읽기 및 쓰기로 설정

분류에서Dev

자바 쓰기 및 파일에서 바이트 읽기

분류에서Dev

iOS : 소켓에서 읽기 및 쓰기 (tcp 연결)

Related 관련 기사

  1. 1

    C에서 파일 쓰기 및 읽기

  2. 2

    QTableView에서 파일 읽기 및 쓰기

  3. 3

    haskell에서 파일 읽기 및 쓰기

  4. 4

    c에서 파일 읽기 및 쓰기

  5. 5

    C에서 파일 읽기 및 쓰기

  6. 6

    Windows 및 Android 장치에서 NFC 태그 쓰기 및 읽기

  7. 7

    QDataSteam에 QByteArray 읽기 및 쓰기

  8. 8

    Tensorflow 읽기 및 BigQuery에 쓰기

  9. 9

    C # CMD에 서버 쿼리 보내기 및 출력 읽기

  10. 10

    읽기 전용 필드에서 동시 읽기 및 공유 객체의 읽기 / 쓰기 필드에 쓰기

  11. 11

    Windows에서 텍스트 파일 읽기 및 C로 Linux 서버에 쓰기

  12. 12

    mongodb 원격 기반에서 읽기 및 쓰기 불가능

  13. 13

    Java로 Windows 명령 프롬프트에 쓰기 및 읽기

  14. 14

    Flutter에서 Firebase 문서에 중첩 된 맵 쓰기 및 읽기

  15. 15

    ndarray 쓰기 및 읽기

  16. 16

    arduino 쓰기 및 읽기

  17. 17

    Windows + VisualC에서 휘발성 읽기 및 쓰기가 원자 적입니까?

  18. 18

    C ++를 사용하여 Windows에서 암호화 된 폴더 읽기 및 쓰기

  19. 19

    PDF / A 문서에서 xml 메타 데이터 읽기 및 쓰기

  20. 20

    소켓에서 동시에 읽기 및 쓰기

  21. 21

    Excel에서 데이터 읽기 및 목록에 쓰기

  22. 22

    C #에서 파일 병렬 읽기 및 쓰기

  23. 23

    명명 된 파이프에서 C 읽기 및 쓰기

  24. 24

    OCaml에서 메모리 매핑 파일 쓰기 및 읽기

  25. 25

    Python 파일에서 변수 쓰기 및 읽기

  26. 26

    My.Resources에서 문자열 읽기 및 쓰기

  27. 27

    PhantomJS에서 쿠키를 읽기 및 쓰기로 설정

  28. 28

    자바 쓰기 및 파일에서 바이트 읽기

  29. 29

    iOS : 소켓에서 읽기 및 쓰기 (tcp 연결)

뜨겁다태그

보관