모니터에 표시된 데이터가 어떻게 저장됩니까? 메모리에 저장되어 있습니까? 그렇다면 어떻게 액세스 할 수 있습니까? 이유는 내가 조작중인 데이터를 저장하기 위해 배열을 사용하는 텍스트 편집기를 프로그래밍하기 때문입니다. 내 자신의 배열을 사용하는 대신 화면에 표시된 데이터가 들어있는 메모리에 액세스 할 수 있는지 궁금합니다. 동일한 데이터에 대해 메모리를 두 번 예약하는 것은 중복 된 것처럼 보입니다. 하지만 모니터에 표시되는 데이터가 모니터에 저장되는 방식 또는 저장하는 경우조차도 알지 못합니다.stdout은 데이터를 어떻게 저장합니까? - C
0
A
답변
3
stdout
의 위치에 대한 가정은 거의 할 수 없습니다. 그것은 어딘가에 버퍼로 끝날 터미널에 갈 수도 있습니다. 또는 다른 프로세스로 파이프 될 수 있습니다. 또는 /dev/null
으로 갈 수도 있습니다. 또는 라인 프린터 등등. 그리고 어딘가에 메모리에 저장되는 경우에도, 그 버퍼는 제한된 크기를 가지며, 따라서 반드시 전체 파일을 보유 할 필요는 없습니다. 그리고 어쨌든 메모리에 액세스 할 수있는 권한이 없을 것입니다. 이론 상으로는 특정 상황에서 작동 할 수 있지만 확실히 올바른 방법은 아닙니다.
아마도 텍스트 편집기에 stdout을 사용하고 싶지는 않지만, 원하는 위치에 텍스트를 놓고 마음대로 업데이트 할 수있는 ncurses
과 같은 것이 좋습니다. mmap
을 고려할지라도 파일의 실제 내용은 아마도 자신의 내부 버퍼를 통해 가장 잘 관리 될 것입니다.
1
표준 출력은 프로그램의 출력 스트림입니다. 프로그램을 실행하는 환경에 따라이 스트림이 가리키는 위치가 결정됩니다. 콘솔 터미널이나 IDE에서 프로그램을 실행하고있을 것입니다.
콘솔 터미널은 출력을 파일이나 다른 프로그램의 입력으로 리디렉션하도록 지시하지 않는 한 기본적으로 내부적으로 출력을 저장합니다.
동의없이 나중에 쿼리 할 수있는 출력 정보를 제 3 자에게 의탁 할 수 없습니다. 원하는 뷰를 생성하려면 프로그램 내부에 충분한 데이터를 보유해야합니다. 네, 위에서 말했듯이, ncurses와 같은 라이브러리를 사용하면 콘솔 앱을 좀 더 쉽게 만들 수 있습니다.
관련 문제
- 1. NSKeyedArchiver로 데이터를 어떻게 저장합니까?
- 2. Facebook은 로그 데이터를 어떻게 저장합니까?
- 3. 어떻게 변화하는 데이터를 데이터베이스에 저장합니까?
- 4. LWJGL은 matrix3f 데이터를 어떻게 저장합니까?
- 5. 관련 데이터를 CakePHP에 어떻게 저장합니까?
- 6. ASP.NET에서 세션 데이터를 어떻게 저장합니까?
- 7. Gambit-C Scheme의 stdout은 무엇입니까?
- 8. 어떻게 사용자 지정 사용자 데이터를 asp.net에 저장합니까?
- 9. in perl. 해쉬는 어떻게 메모리에 데이터를 저장합니까?
- 10. 결제 처리를위한 데이터를 확인 페이지에 어떻게 저장합니까?
- 11. 이 외부 데이터를 SharePoint에 어떻게 저장합니까?
- 12. 테이블 형식의 데이터를 레일에 어떻게 저장합니까?
- 13. IOS 애플리케이션은 대량의 데이터를 어떻게 저장합니까?
- 14. JavaScript로 localStorage를 사용하여 데이터를 어떻게 저장합니까?
- 15. Lithium : 관련 데이터를 양식에 어떻게 표시하고 저장합니까?
- 16. 스프링 세션에서 사용자 별 데이터를 어떻게 저장합니까?
- 17. ObservableCollection의 데이터를 SQL 데이터베이스에 어떻게 저장합니까?
- 18. Silverlight 클라이언트는 Azure에 데이터를 어떻게 저장합니까?
- 19. jQuery는 .data()를 사용하여 데이터를 어떻게 저장합니까?
- 20. 그놈 : Nautilus는 엠블럼 데이터를 어떻게 저장합니까?
- 21. ELMAH는 어디에서 데이터를 저장합니까?
- 22. HttpRuntime.Cache는 어디에서 데이터를 저장합니까?
- 23. HttpRuntime.Cache는 데이터를 어디에 저장합니까?
- 24. 위젯의 데이터는 어떻게 저장합니까?
- 25. 데이터베이스에 NULL을 어떻게 저장합니까?
- 26. STDIN/STDOUT은 한 번에 또는 문자 단위로 데이터를 모두 플러시합니까?
- 27. C#의 savefile 대화 상자에서 어떻게 저장합니까?
- 28. PHP-XCache는 어디에서 데이터를 저장합니까?
- 29. 콘텐츠 공급자는 데이터를 어디에 저장합니까?
- 30. 어떤 레이어에서 데이터를 메모리에 저장합니까?
텍스트 편집기는 커널이 아닙니다. [프레임 버퍼] (http://en.wikipedia.org/wiki/Framebuffer)에 직접 액세스 할 필요가 없습니다. 또한 stdout은 이미 프레임 버퍼와 사용자 공간 프로세스 간의 간접적 인 수준이며 실제 하드웨어 레지스터와 혼동 스럽습니다. –