sprintf함수에서 포매팅 처리 방법을 실험해 봤다.
1) 숫자처리
%4d는 네 자리의 십진수를 표시하되 네 자리가 안될 때에는 공백으로 대체합니다.
%.4d는 네 자리가 안될 경우 0으로 대체합니다.
2) 문자열 처리
%.10s 는 space_buf 값에서 최대 10문자만 출력합니다.
이것은 %10s 처럼 중간에 쩜(.) 이 없는경우와 다릅니다.
(.)이 없으면 즉 %10s 라면 무조건 자리를 10개 확보하고 그곳에 space_buf 의 값을
출력하는데 만얀 space_buf 의 내용이 10개가 모라라면 나머지 공간은
앞부분에 공백으로 남습니다. 그러나 %.10s 는 10개가 모자라도 공백을 주지 않고 바로 다음것을 이어서 씁니다.
예)
printf([%d], 1234 ); ==> [1234]
printf([%.d], 1234 ); ==> [1234]
printf([%10d], 1234 ); ==> [ 1234]
printf([%010d], 1234 ); ==> [0000001234]
printf([%.10d], 1234 ); ==> [0000001234]
printf([%10s], "1234" ); ==> [ 1234]
printf([%010s], "1234" ); ==> [0000001234]
printf([%.10s], "1234" ); ==> [1234]
printf([%s], "1234" ); ==> [1234]
printf([%.s], "1234" ); ==> []
'컴퓨터활용 > 유닉스' 카테고리의 다른 글
쉘에서 date 사용 (0) | 2020.03.09 |
---|---|
vi 에서 탭 문자 찾기 (0) | 2019.04.19 |
ipcs, ipcrm 으로 공유메모리 삭제 방법 (1) | 2018.04.25 |
pfmNumCalc 인자 개수 체크 쉘 (2) | 2017.12.16 |
Lock option has no effect for the map (0) | 2017.07.19 |