나는 표준 c 및 C++ 언어를 배웠다. 그러나 나는 시스템 호출을 사용하고 프로세스 등으로 프로그램을 작성하는 방법을 모른다. 유닉스/리눅스 환경에서 프로그래밍을 배우고 싶다. 무슨 계단 이니? 해야합니까? 먼저 쉘을 배워야할까요?유닉스 환경에서 프로그래밍을 배우는 방법? 나는 첫째로 껍질을 배울까?
답변
저는 시스템 프로그래밍에 종사하고 있으며 교수는 시스템 호출과 기존 코어 유틸리티의 간단한 버전 작성과 같은 유닉스에 대한 설문 조사를 진행하고 있습니다.
유용한 정보 중 하나는 유틸리티의 full source code 및 빠른 참조 system call입니다. 교과서는 Understanding UNIX/Linux Programming입니다. 꼭 읽어주세요.
입력 리디렉션, grep 및 파이프를 사용하는 것 외에는 쉘 스크립팅을 전혀하지 않았으므로이 시점에서 얼마나 유용한 지 모르겠습니다.
UNIX 환경에서 프로그램을 작성하려면 먼저 시스템 호출 등으로 작업하기 전에 주위를 배워야합니다. 유닉스에 대한 전반적인 소개는 The UNIX programming environment을 권하고 싶습니다. 그것은 약간 날짜지만 여전히 책의 한 보석이며, 어떤 프로그래머에게나 읽혀 져야합니다.
멋진 책, 그리고 재미있는 읽을 수 있습니다. 그러나 그것은 약간 날짜가 이상입니다.우리 아버지는 몇 년 전에 유닉스 프로그래밍을 배워야했고 조직적인 사람 이었기 때문에 라이브러리에서 확인하고 도움을 요청하기 전에 읽었습니다. 나는 그것만큼 많은 혼란으로 인한 경우 말했을거야. 아직도, 그것은 좋은 책이다. – dmckee
아니요, 껍질을 배울 필요가 없습니다. C.에 대한 유닉스 시스템 호출을 설명하는 책이나 웹 페이지를 찾으십시오.
유닉스/리눅스 시스템을 사용한다면, 쉘 스크립팅과 그 도구에 대해 알고 있어야합니다. 시작 스크립트는 시스템을 돌아 다니거나 빨리 움직입니다 (예 : ls, mv, cp 등 사용). 그 외, 실제 프로그래밍 작업을 위해서는 프로그래밍 언어 (Python, Ruby가 마음에 듭니다)를 사용할 수 있습니다. Python과 같은 많은 현대 프로그래밍 언어는 이미 시스템 수준의 API를 제공합니다. 파이썬은 쉘 자체와 함께 제공되기 때문에 하드 코어라면 일상적인 작업에도 사용할 수 있습니다. 이 작은 예는 파이썬에서 디렉토리 목록 명령 행에 ls
를 입력으로
>>> import os
>>> os.chdir("/tmp")
>>> os.listdir(".")
그에게 같은 쉘 할 수 있습니다 보여줍니다. 파일 이동/복사는 어떻습니까? 대신 시스템/낮은 수준의 물건을 프로그램하려는 경우 쉘 mv
및 cp
,
>>> import shutil
>>> shutil.copy("file","/destiation")
>>> shutil.move("file1","/destination")
IMHO를 사용하는 다음 C/C++는 당신이 관리 또는 매일 작업 프로그래밍을하지만, 정상적인 시스템을 필요한 수 있습니다 Python/Ruby (또는 Perl)과 같은 언어가 대부분 당신에게 적합합니다.
"전통적인"유닉스 환경 (텍스트 편집기를 사용하고 명령 줄에서 모든 것을하는 것)으로 프로그래밍하려는 경우, 쉘에 능통하고 편집자와 매우 유능한 사람이되기를 원할 것입니다 Your Choice (그리고 선택의 자유가 있지만 이맥이 아니라면 나쁜 곳으로 갈 것입니다 ...).
그러나 실제로 쉘을 "연구"할 필요가 없습니다 먼저. 셸이 강력한 도구를 제공한다는 것을 명심하십시오. 그럼, 당신이 자기 생각을 찾을 때마다 "더 좋은 방법이있을거야!", 더 좋은 방법을 배우십시오. 은입니다.
- 1. 유닉스 환경에서 C++ 또는 Windows 환경에서 C++?
- 2. C# 프로그래밍을 배우는 가장 빠른 방법
- 3. 스레드 안전 C# 프로그래밍을 배우는 방법?
- 4. 마이크로 소프트 기술을 사용하여 웹 개발을위한 프로그래밍을 배우는 방법
- 5. 유닉스 환경에서 가장 빠른 해싱?
- 6. 유닉스와 티 - 유닉스 환경에서 명령
- 7. 유닉스 환경에서 Poco 라이브러리 (라이브러리)를 우리 프로그램에 연결하는 방법
- 8. C#에서 Windows Forms 프로그래밍을 배우는 좋은 프로젝트는 무엇입니까?
- 9. C++에서 "효과적인"템플릿 프로그래밍을 배우는 훌륭한 책/자료입니까?
- 10. Autotools의 기쁨을 배우는 방법?
- 11. 방법/유닉스
- 12. ADO.NET을 배우는 방법
- 13. 수학 표기법을 배우는 방법?
- 14. 프로그래밍을 시작하는 방법?
- 15. Canvas/ActionScript를 배우는 방법?
- 16. MDX를 배우는 방법
- 17. Maven을 배우는 가장 빠른 방법
- 18. 프로그래밍을 통해 Gmail에 로그인하는 방법
- 19. PHP에서 Python을 배우는 것
- 20. PyDev 및 Django : PyDev 장고 껍질을 깨는?
- 21. C#을 빨리 배우는 방법?
- 22. 절대 패널의 크기를 배우는 방법
- 23. Ajax를 배우는 가장 좋은 방법
- 24. 웹 디자인 기술을 배우는 방법
- 25. 유닉스 환경에서 시스템 호출을 가로 챌 수있는 방법은 무엇입니까?
- 26. C 언어 - 유닉스 환경에서 Fscanf 및 sprint 명령
- 27. 유닉스 파이프 처리 방법
- 28. C 저레벨 프로그래밍을 대체합니까?
- 29. OpenCL을 배우는 좋은 프로젝트는 무엇입니까?
- 30. 절차 적 프로그래밍을 문서화하는 방법?
"표준"C 및 C++은 무엇을 의미합니까? –
기본 정확하게 – liu