운영체제론 숙제로 자신의 이름을 출력하는 나왔습니다. ‘참 쉽죠?’이기는 하지만 그것이 pintos를 돌리는 bochs 위라는 점이 ‘C 언어 배우기’와 같은 수업 첫 번째 수업과 다른 점이었습니다.
어떻든 교수님은 화려한 것을 좋아한다고 하셨고 거기에 한 학우가 저에게 ‘색깔을 넣는 것이 어떻겠느냐?’라는 말을 하였습니다.
그래서 관련 자료를 찾아보았습니다. 그렇게 해서 발견한 문서가 있습니다.
Consider the following program:
int main() {
printf(“%c[1;31mHello\n”,27); /* Prints “Hello\n” in RED (ANSI) */
return 0;
}
실제로 저렇게 하면 Hello가 빨간색으로 되는지 확인하였습니다.
정말로 빨간색으로 출력되는군요.^^ 하지만 그 뒤에도 계속 그렇게 되네요.OTL.. 프로그램이 끝나서 쉘 프로세스로 돌아왔음에도 그 영향이 남아있다는 점이 놀랍습니다.
혹시 이것이 putty의 문제인가 싶어 Gnome Shell에서도 확인해보았습니다.
역시 같은 모습입니다.
그럼 다른 프로세스를 돌리면 원래대로 돌아오는가 싶어 해보았습니다.
echo를 하였음에도 그대로 진행되네요. 그런데 왜 ls는 제대로 출력하는지 모르겠습니다.
그럼 다른 색깔이나 다른 효과는 어떻게 하면 되는가? 여기에 대해서는 다음 문서를 참조하시면 됩니다.
Microsoft DOS입니다. 하지만 Visual Studio 2008에서 컴파일 한 cmd에서는 제대로 동작하지 않습니다.
아마 컴파일 시 DOS가 아니라 Win32로 하였기 때문이 아닌가 싶습니다. 여기에 대해서는 잘 모르겠네요.^^;;
지금까지 C에서 console에 색깔 등의 효과를 내는 방법 소개였습니다.
참조
ls에서 색이 출력이 안된건
ls가 자체적으로 콘솔출력시 색을 통제해서 그런것 아닐까요?
ls 후에 다시 원래대로 돌아온걸 보면 그런것 같군요.
저 역시 그렇지 않을까 추측하고 있습니다.
ls에서 파란색이 사용되는 것으로 보아 아마 디폴트로 설정하여 찍은 후 해당 부분을 파란색으로 하는 것이 아닌가 싶습니다.
ls 소스를 보면 명확하겠지만 일단 훗날로 미뤄야겠습니다.OTL…