2012-09-24 2 views
0

셸 프로그래밍에서 변수 및 함수 주소를 찾는 방법이 있습니까? & x를 출력 할 때 c 또는 C++과 같은 것을 x 메모리 주소로 가져올 수 있습니다.셸에서 변수 및 함수 메모리 주소 찾기

+0

그 주소로 무엇을하고 싶습니까? – sth

+0

실제로, 런타임에 스택 크기를 예측하고 싶습니다. 어떤 방법이 있습니까? – user1694236

+0

쉘 스크립트에는 일반적으로 "주소"또는 "메모리"라는 개념이 없습니다. 그래서 아니오, 당신은 변수의 주소를 얻을 수 없습니다. " –

답변

1

원하는 것에 따라 다릅니다. 대부분의 쉘은 다른 변수의 이름을 포함하는 기호 (또는 "소프트") 참조 만 지원합니다. Korn 셸 93에는 typeset -n을 사용하여 만든 이름 참조가 있지만 주소는 노출되지 않습니다. man ksh에서 그걸 보시면 도움이 될 것입니다.

변수의 메모리 주소를 얻을 수 있다고해도 어떻게 할 것입니까? 쉘 변수는 C처럼 원시적 인 방식으로 구조화되지 않으므로 포인터 arithemtic은 쓸모가 없다. 주소를 증가시킴으로써 배열이나 문자열을 반복 할 수 없습니다. 당신이 할 수있는 최선의 방법은 특정 쉘의 특정 버전의 메모리를 조사하는 것입니다.

쉘은 대부분 C로 작성되었으므로 언제든지 쉘 소스를 debug (-g)로 컴파일하고 디버거를 사용하여 연결할 수 있습니다. 그게 당신을 사 겠다는 생각이 없으니 내 질문이되어야합니다 : 왜?

편집; 당신이 스택 크기를 원한다는 코멘트에서 쉘 변수가 힙이나 환경 블록에 할당 될 것이라 확신합니다.