웹 브라우저에서 터미널처럼 동작할 수 있게 만들고 싶어서
동작 부분만 우선 생각나는 방식대로 짜본다고 짰는데 잘 안되네요
코드에서 보면 포크 시켜서 파이프랑 표준입출력 연결시키고 exec으로 sh를 실행시키고 있고
부모프로세스에서는 스레드 2개를 만들고 있습니다. 저 스레드는 각각 루프돌면서 sh에 입력만 / sh의 출력만 받아오는 역할입니다.
원하는 대로 동작하지 않아서 무엇이 문제인가 봤는데 포크까지는 올바른 흐름대로 가는데
자식 프로세스에서 분명 exec함수가 정상적으로 실행은 됩니다. 근데 실행되자마자 죽어버립니다.
부모 프로세스는 스레드 동작까지 잘 하는데 쓰기 읽기 파이프의 대상이 되는 자식 프로세스가 존재하지 않으니
당연히 SIGPIPE를 받습니다... 무엇이 문제일까요? fork()보다 윗부분은 파이프 생성밖에 없어서 안올렸습니다.
아 그리고 혹시 웹 터미널 관련해서 조언같은게 혹시 있다면 부탁드리겠습니다.