C 프로그램을 사용하여 실행중인 셸 (Bash)의 표준 입력에 쓸 수 있습니까? 사실 exec*()
시스템 호출 중 하나를 사용하지 않고 내 C 프로그램에서 bash
을 사용하여 명령을 실행하려고합니다.C 프로그램에서 셸 명령 실행
0
A
답변
0
/bin/echo
은 일반적으로 C 프로그램입니다.
/bin/echo ls | sh
보라! C 프로그램이 실행중인 쉘의 표준 입력에 쓰고 명령이 실행되었습니다. 이것은 명백하게 가능합니다.
man popen
은 이제 친구입니다. (system()
과 같은 다른 것들에 대한 논의와 따옴표의 필요성과 같이 수퍼 유저의 범위를 벗어나는 것은 더 이상 없습니다.)
+0
'/ bin/echo' 프로그램도 있습니다; 그러나 대부분의 셸에는 'echo'명령이 내장되어 있습니다. –
+0
내장을 사용하면 응답이 불필요하게 진절머리가납니다. 반면에'/ bin/echo'를 가리키며 "컴파일 된 C 프로그램이 그 파일에 있습니다."라고 말할 수 있습니다. – JdeBP
관련 문제
- 1. C# : 셸 명령 실행 문제
- 2. .NET 응용 프로그램에서 셸 명령 실행
- 3. 셸 창없이 셸 명령 실행
- 4. Perl에서 셸 명령 실행
- 5. ASP.NET에서 셸 명령 실행
- 6. 셸 스크립트에서 Hadoop 명령 실행
- 7. 자바에서 다중 명령 셸 실행
- 8. popen에서 명령 셸 실행 및 다른 명령 셸 설정
- 9. 프로그래밍 방식으로 셸 명령 실행
- 10. c 프로그램에서 Linux 명령 실행
- 11. C 프로그램에서 쉘 명령 실행
- 12. 명령 줄에서 셸 스크립트 실행
- 13. Elixir에서 기본 셸 명령 실행
- 14. Foxx 앱에서 셸 명령 실행
- 15. 셸 쓰기 - 명령 실행 방법
- 16. C 프로그램에서 프로세스 (명령 셸)를 시작하고 종료하는 방법은 무엇입니까?
- 17. C 프로그램에서 명령 줄 인수로 셸 변수를 전달하는 방법
- 18. C# 콘솔 응용 프로그램에서 ADB 셸 명령을 빠르게 실행
- 19. 임베디드 파이썬의 셸 명령 실행 방지?
- 20. Java 프로그램에서 명령 실행
- 21. C#에서 셸 명령 사용
- 22. 암호를 묻는 C++ 셸 명령
- 23. 셸 명령 대체 방지
- 24. Usinc 명령 프롬프트/셸 실행 스크립트 3
- 25. PHP 스크립트를 사용하여 셸 명령 실행
- 26. Python을 사용하여 여러 adb 셸 명령 실행
- 27. Linux : 파일 저장시 셸 명령 실행
- 28. 와일드 카드로 여러 셸 명령 실행
- 29. NSTextView에서 셸 명령 출력
- 30. C 셸 코드 실행 문제
궁극적으로, 여러분은'fork()'와'exec * 'bash' 프로그램을 실행시키기 위해 호출하십시오; 당신이 ['posix_spawn()'] (http://pubs.opengroup.org/onlinepubs/9699919799/functions/posix_spawn.html)을 세지 않는 한 진짜 대안이 없습니다. 표준 입력 (프로그램에서?)과 표준 출력 (프로그램으로?)과 표준 오류, 올바른 쉘 옵션 ('-i'?)을 처리하기 위해'bash '에 배관을 구성하는 문제가 있습니다. Captive Shell에서 어떤 종류의 명령을 실행할 것으로 예상합니까? –
난 단지 내 프로그램에서 문자열 입력을 받아서이 문자열을 bash의 실행중인 인스턴스에 보내고 bash가 나를 위해 실행을하고 내 프로그램에 해당 출력을 보내길 원한다. –
임의로 실행중인 Bash 인스턴스에 임의로 명령을 보낼 수는 없습니다. 그들 중 대부분은 다른 사람의 일을 묶어두고 잘못된 현재 디렉토리에 있고 잘못된 환경이 설정되어 있습니다. 자신 만의 쉘을 실행해야합니다. 주의가 필요하다면 각각의 명령마다 새로운 쉘을 실행할 필요는 없지만, 통신 할 때'bash '를'fork()'하고'exec *()'할 필요가 있습니다. 2 ~ 3 개의 파이프 (쉘에 대한 표준 입력, 쉘의 표준 출력, 별도의 쉘 표준 오류)가 필요할 것이므로이를 읽는 방법에 대해 생각할 필요가 있습니다. –