2017-10-29 2 views
0

printf()의 결과가 printf()에있는 것만 인쇄하는 대신 다른 일부 구성 요소를 포함하게하려면 Ubunto에서 glibc를 수정하고 싶습니다. 예를 들어 printf ("Hello World")를 입력하면 그 결과에 printf()에있는 이름 앞에 내 이름이 포함 된 결과가 'J.Doe, Hello World'가됩니다. 어떻게하면 glibc의 일부 파일을 수정하여이 작업을 수행 할 수 있습니까?우분투에서 glibc를 수정하여 printf() 함수의 결과를 변경하는 방법

+1

엄청난 아이디어입니다. 'printf'를 정말로 오버로드시키고 싶다면, 자신 만의 버전과 링크를 작성하십시오. 자신의 라이브러리를 유지하려고하지 마십시오. –

+0

[하지 마십시오] (https://meta.stackexchange.com/questions/66377/what-is-the-xy-problem). –

+0

*** 왜 *** 이걸 원하니? 당신이 해결하고자하는 실제 문제는 무엇입니까? 귀하의 질문이 완벽한 예제이기 때문에 [XY 문제] (https://meta.stackexchange.com/questions/66377/what-is-the-xy-problem)에 대해 읽으려면 시간을 할애하는 것이 좋습니다. –

답변

3
  1. glibc 패키지를 다운로드하십시오. 내가 사용하고있는 버전은 glibc-2.23.tar.gz입니다.
  2. 빌드 할 수 있는지 확인하십시오. (이것은 쉽지는 않습니다 - 시스템 의존성이 많은 거대하고 복잡한 패키지입니다.)
  3. C 프로그램을/usr/lib에있는 것이 아니라 새로 빌드 한 libc에 연결할 수 있는지 확인하십시오.
  4. 이제 printf 수정을 시작할 준비가되었습니다. 모든 printf 변종에 대한 공통 코드는 stdio-common/vfprintf.c에 있습니다. 조심해! 복잡하고 정교한 코드입니다. 이것은 배울 수있는 가장 직접적이고 이해하기 쉬운 구현이 아닙니다. 당신이에서 놀이와 학습의 printf보다 간단하고 이해하기 쉬운 구현을 원한다면

C FAQ list 하나있다.

관련 문제