Electron에서 표준 입력 출력을 사용하여 C 언어 프로그램을 호출하는 방법[애니메이션 버전이 있음]

3645 단어 ElectronNode.jstech

이 보도에 관하여


본고는 표준 입력과 출력을 사용하여 C 언어 프로그램을 호출하는 방법을 소개한다.C 언어 프로그램을 호출할 때 노드입니다.js의 표준 라이브러리로서의childmain 프로세스에서 프로세스에 포함된 spawn 함수를 사용합니다.
  • 소스 코드

  • 대략적인 절차


    대략적인 절차는 아래와 같다.
  • C 언어 측면의 인코딩 준비
  • C 언어 측면 인코딩
  • C 언어 측면의 구축
  • Electron 측 인코딩 준비
  • Electron 측 인코딩
  • 동작 확인
  • C 언어에 대한 인코딩 준비


    터미널에서 다음 명령을 실행하여 C 언어의 인코딩을 준비합니다.
    mkdir electron-child-process
    cd electron-child-process
    touch add.c
    

    C 언어 인코딩


    add.c


    편집기에서dd.c 를 열고 다음을 입력합니다.

    C 언어의 구축


    다음 명령을 실행하여 C 언어 소스 코드를 만듭니다.
    gcc -o add add.c
    

    Electron 측 인코딩 준비


    터미널에서 다음 명령을 실행하고 Electron 측의 인코딩을 준비하십시오.
    npm init -y
    npm install --save-dev electron
    touch index.html main.js
    

    Electron 측 인코딩


    index.html


    편집기에서 index.를 열고 다음을 입력합니다.

    main.js


    편집기에서main.js를 열고 다음 내용을 입력하십시오.
    요점은 아래와 같다.
  • 하위 프로세스가 끝날 때까지 기다려야 하기 때문에 spawn 함수와 관련된 모든 처리를 Promise로 포위합니다.
  • spawn 함수를 호출하여 하위 프로세스를 시작합니다.입력은 명령행 매개 변수로 쉽게 전달됩니다.
  • main 프로세스의 표준 오류 출력을 제어하여 하위 프로세스의 표준 오류 출력에 오류 메시지 등을 표시하도록 합니다.
  • 하위 프로세스의 표준 출력 데이터 이벤트에 이벤트 처리 프로그램을 등록하고 출력을 가져옵니다.
  • 하위 프로세스의 exit 이벤트에 이벤트 처리 프로그램을 등록하고 종료를 기다립니다.종료 코드는 종료 코드를 매개 변수로 이벤트 처리 프로그램을 호출하고 종료 코드가 0인지 확인한 후 Promise를 해결합니다.
  • 하위 프로세스의 error 이벤트에 이벤트 처리 프로그램을 등록하고 시작 오류나 실행 오류가 발생할 때 Reject Promise를 실행합니다.
  • package.json


    편집기에서 package를 선택합니다.json을 열면main 속성을 다음과 같이 수정합니다.
      "main": "main.js",
    

    동작 확인


    터미널에서 다음 명령을 실행하여 컨트롤러에 출력되었는지 확인하십시오: "sum": "3"}.
    npx electron .
    
    집행 결과는 다음과 같다.
    {"sum":"3"}
    

    끝말


    나는 C 언어 노드를 잘 모른다.js 로컬 모듈을 만드는 제품은 Electron에서 호출하기 어려울 것 같아서 간단한 표준 입력과 출력 방법을 사용했습니다.이 방법의 장점은 C 언어의 프로그램을 단독으로 시작할 수 있기 때문에 디버깅이 비교적 쉽고 구축된 후에 C 언어의 프로그램을 바꿀 수 있다.다른 한편, 서브프로세스를 시작하면 비용이 발생하고 필요한 성능이 생길 수 있으며 과도한 부하를 견딜 수 있기 때문에 1초에 수천 수만 번을 부르면 로컬 모듈을 만드는 것을 열심히 배우는 것이 좋다.
    용도로는 C 언어로 명령선을 만드는 프로그램을 만들었지만, 설정 등 기능과 GUI를 저장하는 게 어려워 일렉트로닉으로 이런 용례를 만드는 것도 고려할 수 있다.또 C 언어와 일렉트로닉의 소스 코드는 제작자가 다른 경우 입력 출력 인터페이스만 규정하면 같은 소스 코드를 편집할 필요가 없어 양측 모두 아무 걱정 없이 프로그래밍에 집중할 수 있다.그때 관련 기사에 소개된 Electron에서fetch와main 프로세스를 사용하여 통신하는 방법이 유용할지도 모른다.
    전혀 상관없지만 이 기사를 쓰기 전에'일렉트론이 serialport 등 로컬 모듈을 사용하는 방법'을 주제로 기사를 쓰려고 했지만 electron-rebuild 사용하지 않아도 로컬 모듈이 정상적으로 작동할 것이라 서둘러 이번 주제로 바꿨다.이전에 Electron의main 프로세스에서serialport을 가져오려고 했을 때 오류가 발생한 것처럼 저장되어 있었습니다.자세한 사람이 있으면 저에게 지도할 평론을 주세요.끝까지 읽어주셔서 감사합니다!

    관련 보도

  • Electron에서fetch를 사용하여main 프로세스와 통신하는 방법
  • 좋은 웹페이지 즐겨찾기