이 녀석으로 할 수 있는 것은,
일정 사이즈로 resize(리사이즈) 혹은 scale/scaling(스케일링) 하는 것과
jpg를 bmp로 변환하는 것이다. djpeg를 보면 다른 bmp 포맷으로도 변환이 가능하지만,
윈도우 기반의 Bitmap으로만 할줄을 알아서..(헤더만 차이가 있을려나..)
아무튼 자세한 내용은 libjpeg에 들어있는 libjpeg.doc 을 참조 하면 되지만
한가지 애매한 부분이 있어 추가를 한다.
jpeg_read_header(&cinfo, TRUE);
이부분은 말그대로 jpeg 파일의 크기등의 각종 정보를 불러온다.
그리고 그 정보를 바탕으로 scaling을 준비한다. 그리고 나서
jpeg_start_decompress(&cinfo);
위의 함수를 호출하여(정확하게는 매크로) jpeg 을 bitmap으로 변환한다.
아래는 변환 부분의 소스코드이며,
cinfo.scale_num = 1;
cinfo.scale_denom = 8;
부분의 값으로 인해서 1/8 크기로 축소되어 변형된다.
(이로인해 preview 시에 상당히 빠르게 볼 수 있다. 그리고 jpeg6b 버전의 최대값이 1/8 이다)
딴나라당과 현 대통령은 전 대통령을 악당으로 만들어 자신의 정권 유지와
사람들의 인정을 받으려고 노력하는 모습이 눈물 겹다.
물론 이러한 것들은 역사적으로도 당연시 되는 전법으로, 이전 왕권을 부정함으로
자신의 권력을 견고히 하기 위함이다.
하.지.만
생각치도 못한 변수가 생겼으니, 전 대통령이 도인급 디펜스를 가졌다는 사실!
이거 캐고캐고, 단골집 세무조사까지 해도 먼지하나 안나오는데
문제는 심마니가 "심봤다!" 할정도로 자기네 먼지만 폴폴 난다는 것!
두둥! 이제 어쩌랴,
압박은 해놓았지만 딱히 건덕지는 없고 오히려 자기의 칼이 자기의 목을 조여 오는것을!!
그래서 특단의 조치를 내린다!!
슬슬 압박으로 심리적으로 힘들어진 상황에서 우울증 기미도 보이기 시작했고
생활패턴은 인터넷으로 생중계 되면서, 이미 파악은 완료 되었다
최대한 조심조심하며, 기회를 노리는 것이다!
어익후 이 노친네 망령이 들었나 왜케 아침부터 등산가서 젊은 경호원들 피곤하게 그래~
경호원군 너네 부모님이 oo병원에 계시다며?
폭파시키지 않을테니 돈은 두둑하게 후세까지 챙겨줄테고 내가 시키는대로 하지 않겠어?
많은걸 바라진 않을테니 아침부터 등산가면 사람없나 보고 살짝 등을 밀어 드려 오케바리?
씌익 씌익~ Why so Serious?
그렇게 스키머 들에 의해 제거가 된 배트맨 아니 전 대통령은
영웅으로 거듭 태어나고, 빛이 강하면 그늘도 짙듯, 현 대통령은 악당으로 등극하게 된다.
두둥~~(다크나이트 엔딩 BGM 참조)
2. 북핵 실험 그리고 ICBM
전 대통령의 서거를 슬퍼하면서 김정일이 땅을 두드리니 진도 4.5의 지진이 발생을 하고
열불나서 홧김에 담배불 켜다가 손을데어 던진 불이 미사일 똥꾸녁에 떨어지니
어익후야 손이 미끄러졌구나~ 미사일이 슝슝 날아 갔다.
미사일 관련 개소리는 잠시 스탑하고
진지하게 이야기 하자면, 북한의 핵실험과 미사일 실험은
현재 대한민국에 대한 선전 포고 내지는, 위협이라고 생각이 된다.
비록 NASA나 북한의 공식 발표는 위성발사에 실패를 했다고 하지만,
국제사회에 끼치는 영향을 감안해서 실패했다고 발표를 했을 가능성이 높다고 본다.
그리고 비록 실패를 했다고 하더라도, 최소한 1000km급의 투사능력을 갖추고
소형화 되지 않은 핵탄두라고 하더라도 500km 정도는 날릴수 있지 않을까 라는 생각을 해본다.
그렇다면 현실적인 공격타켓은 미국보다는 일본이 되는 것이고, 그 안에 있는 남한, 중국, 러시아 역시 위협대상이 된다.
최고의 반사이익은 일본으로 전범국가로 묶여서 핵보유 하지 않고, 자위대로 있는 군대를
북한의 핵보유를 기정사실화 하면서 핵보유와 함께, 군대로 승격을 노리면서 실질적인 군사대국으로
제2의 제국주의를 꿈꾸게 될 것이다.
이해가 안되는 점은, 6발 정도의 핵탄두를 가졌을 가능성이 있다고 하지만
여름인 관계로 일본에 떨구어도 바람에 의해서 자신이 영향을 받고,
그렇다고 해서 남한에 떨구면 자멸의 길을 걷고 일본도 얼씨구나 쳐들어 올 가능성이 높은데
지금 이 시점에서 이러한 무리수를 두면서
'전 대통령 서거'일에 맞춘듯이 핵폭발 실험을 했을리가 없다는 것이다.
더욱이, 김정일-이명박 연계 플레이 하기에는 우호도 점수가 낮은 관계로, 연계플레이라고도 볼수 없고.
최악의 가정은 말그대로, 북한의 붕괴가 다가왔고 최후의 수단으로 전쟁을 준비하는 것이라고 밖에 보이지 않는다.
3. 전쟁징후와 고위권 인사의 이탈
아마 전쟁 날분위기가 들면, MB와 딴나라당 놈들은 해외연수등의 핑계로 미국이나 일본으로 미리 나가 있을 것이고
나라말아먹은 경력으로 그 나라의 시민권을 획득하여 또 다시 떵떵거리며 살겠지
문득 영웅의 제조(producing hero)와 선과 악의 대결(이라고 할정도 거창하진 않지만)
이러한 것들이 많이 떠오르게 된다... 누구를 위한 영웅의 탄생이며
영웅이 생겨남으로 어떠한 악당이 생겨날지
$ nm -A libjpeg.a
libjpeg.a:jcapimin.o:00000330 T jpeg_CreateCompress
libjpeg.a:jcapimin.o: U jpeg_abort
libjpeg.a:jcapistd.o: U jinit_compress_master
libjpeg.a:jcapistd.o:000001b0 T jpeg_start_compress
libjpeg.a:jctrans.o:000000c0 t compress_output
libjpeg.a:jctrans.o: U jinit_c_master_control
libjpeg.a:jcparam.o:000008a0 t add_huff_table
libjpeg.a:jcparam.o:000000e2 r bits_ac_chrominance.3846
... 파일별로 반복
'
U,T,r 등은 symbol type 이라고 하며,
위의 U는 Undefined 을, T는 Text section(code) 을 의미한다.
$ nm --help
Usage: nm [option(s)] [file(s)]
List symbols in [file(s)] (a.out by default).
The options are:
-a, --debug-syms Display debugger-only symbols
-A, --print-file-name Print name of the input file before every symbol
-B Same as --format=bsd
-C, --demangle[=STYLE] Decode low-level symbol names into user-level names
The STYLE, if specified, can be `auto' (the default),
`gnu', `lucid', `arm', `hp', `edg', `gnu-v3', `java'
or `gnat'
--no-demangle Do not demangle low-level symbol names
-D, --dynamic Display dynamic symbols instead of normal symbols
--defined-only Display only defined symbols
-e (ignored)
-f, --format=FORMAT Use the output format FORMAT. FORMAT can be `bsd',
`sysv' or `posix'. The default is `bsd'
-g, --extern-only Display only external symbols
-l, --line-numbers Use debugging information to find a filename and
line number for each symbol
-n, --numeric-sort Sort symbols numerically by address
-o Same as -A
-p, --no-sort Do not sort the symbols
-P, --portability Same as --format=posix
-r, --reverse-sort Reverse the sense of the sort
-S, --print-size Print size of defined symbols
-s, --print-armap Include index for symbols from archive members
--size-sort Sort symbols by size
--special-syms Include special symbols in the output
--synthetic Display synthetic symbols as well
-t, --radix=RADIX Use RADIX for printing symbol values
--target=BFDNAME Specify the target object format as BFDNAME
-u, --undefined-only Display only undefined symbols
-X 32_64 (ignored)
@FILE Read options from FILE
-h, --help Display this information
-V, --version Display this program's version number
DESCRIPTION
GNU nm lists the symbols from object files objfile.... If no object files are listed as argu-
ments, nm assumes the file a.out.
For each symbol, nm shows:
o The symbol value, in the radix selected by options (see below), or hexadecimal by default.
o The symbol type. At least the following types are used; others are, as well, depending on
the object file format. If lowercase, the symbol is local; if uppercase, the symbol is
global (external).
"A" The symbol's value is absolute, and will not be changed by further linking.
"B"
"b" The symbol is in the uninitialized data section (known as BSS).
"C" The symbol is common. Common symbols are uninitialized data. When linking, multiple
common symbols may appear with the same name. If the symbol is defined anywhere, the
common symbols are treated as undefined references.
"D"
"d" The symbol is in the initialized data section.
"G"
"g" The symbol is in an initialized data section for small objects. Some object file formats
permit more efficient access to small data objects, such as a global int variable as
opposed to a large global array.
"I" The symbol is an indirect reference to another symbol. This is a GNU extension to the
a.out object file format which is rarely used.
"i" The symbol is in a section specific to the implementation of DLLs.
"N" The symbol is a debugging symbol.
"p" The symbols is in a stack unwind section.
"R"
"r" The symbol is in a read only data section.
"S"
"s" The symbol is in an uninitialized data section for small objects.
"T"
"t" The symbol is in the text (code) section.
"U" The symbol is undefined.
"V"
"v" The symbol is a weak object. When a weak defined symbol is linked with a normal defined
symbol, the normal defined symbol is used with no error. When a weak undefined symbol is
linked and the symbol is not defined, the value of the weak symbol becomes zero with no
error. On some systems, uppercase indicates that a default value has been specified.
"W"
"w" The symbol is a weak symbol that has not been specifically tagged as a weak object sym-
bol. When a weak defined symbol is linked with a normal defined symbol, the normal
defined symbol is used with no error. When a weak undefined symbol is linked and the
symbol is not defined, the value of the symbol is determined in a system-specific manner
without error. On some systems, uppercase indicates that a default value has been speci-
fied.
"-" The symbol is a stabs symbol in an a.out object file. In this case, the next values
printed are the stabs other field, the stabs desc field, and the stab type. Stabs sym-
bols are used to hold debugging information.
"?" The symbol type is unknown, or object file format specific.
$ ar -t libjpeg.a
jcapimin.o
jcapistd.o
jctrans.o
jcparam.o
jdatadst.o
...
$ ar --help
Usage: ar [emulation options] [-]{dmpqrstx}[abcfilNoPsSuvV] [member-name] [count] archive-file file...
ar -M [<mri-script]
commands:
d - delete file(s) from the archive
m[ab] - move file(s) in the archive
p - print file(s) found in the archive
q[f] - quick append file(s) to the archive
r[ab][f][u] - replace existing or insert new file(s) into the archive t - display contents of archive
x[o] - extract file(s) from the archive
command specific modifiers:
[a] - put file(s) after [member-name]
[b] - put file(s) before [member-name] (same as [i])
[N] - use instance [count] of name
[f] - truncate inserted file names
[P] - use full path names when matching
[o] - preserve original dates
[u] - only replace files that are newer than current archive contents
generic modifiers:
[c] - do not warn if the library had to be created
[s] - create an archive index (cf. ranlib)
[S] - do not build a symbol table
[T] - make a thin archive
[v] - be verbose
[V] - display the version number
@<file> - read options from <file>
emulation options:
No emulation specific options
ar: supported targets: elf32-i386 a.out-i386-linux efi-app-ia32
efi-bsdrv-ia32 efi-rtdrv-ia32 elf32-little elf32-big elf64-x86-64
efi-app-x86_64 efi-bsdrv-x86_64 efi-rtdrv-x86_64 elf64-little elf64-big
srec symbolsrec tekhex binary ihex trad-core
Report bugs to <http://www.sourceware.org/bugzilla/>
Sections:
SYMBOL TABLE:
RELOCATION RECORDS FOR [.text]:
... 파일별로 반복
$ objdump --help
Usage: objdump <option(s)> <file(s)>
Display information from object <file(s)>.
At least one of the following switches must be given:
-a, --archive-headers Display archive header information
-f, --file-headers Display the contents of the overall file header
-p, --private-headers Display object format specific file header contents
-h, --[section-]headers Display the contents of the section headers -x, --all-headers Display the contents of all headers
-d, --disassemble Display assembler contents of executable sections
-D, --disassemble-all Display assembler contents of all sections
-S, --source Intermix source code with disassembly
-s, --full-contents Display the full contents of all sections requested
-g, --debugging Display debug information in object file
-e, --debugging-tags Display debug information using ctags style
-G, --stabs Display (in raw form) any STABS info in the file
-W, --dwarf Display DWARF info in the file
-t, --syms Display the contents of the symbol table(s)
-T, --dynamic-syms Display the contents of the dynamic symbol table
-r, --reloc Display the relocation entries in the file
-R, --dynamic-reloc Display the dynamic relocation entries in the file
@<file> Read options from <file>
-v, --version Display this program's version number
-i, --info List object formats and architectures supported
-H, --help Display this information
The following switches are optional:
-b, --target=BFDNAME Specify the target object format as BFDNAME
-m, --architecture=MACHINE Specify the target architecture as MACHINE
-j, --section=NAME Only display information for section NAME
-M, --disassembler-options=OPT Pass text OPT on to the disassembler
-EB --endian=big Assume big endian format when disassembling
-EL --endian=little Assume little endian format when disassembling
--file-start-context Include context from start of file (with -S)
-I, --include=DIR Add DIR to search list for source files
-l, --line-numbers Include line numbers and filenames in output
-F, --file-offsets Include file offsets when displaying information
-C, --demangle[=STYLE] Decode mangled/processed symbol names
The STYLE, if specified, can be `auto', `gnu',
`lucid', `arm', `hp', `edg', `gnu-v3', `java'
or `gnat'
-w, --wide Format output for more than 80 columns
-z, --disassemble-zeroes Do not skip blocks of zeroes when disassembling
--start-address=ADDR Only process data whose address is >= ADDR
--stop-address=ADDR Only process data whose address is <= ADDR
--prefix-addresses Print complete address alongside disassembly
--[no-]show-raw-insn Display hex alongside symbolic disassembly
--adjust-vma=OFFSET Add OFFSET to all displayed section addresses
--special-syms Include special symbols in symbol dumps
The following i386/x86-64 specific disassembler options are supported for use
with the -M switch (multiple options should be separated by commas):
x86-64 Disassemble in 64bit mode
i386 Disassemble in 32bit mode
i8086 Disassemble in 16bit mode
att Display instruction in AT&T syntax
intel Display instruction in Intel syntax
att-mnemonic
Display instruction in AT&T mnemonic
intel-mnemonic
Display instruction in Intel mnemonic
addr64 Assume 64bit address size
addr32 Assume 32bit address size
addr16 Assume 16bit address size
data32 Assume 32bit data size
data16 Assume 16bit data size
suffix Always display instruction suffix in AT&T syntax
Report bugs to <http://www.sourceware.org/bugzilla/>.
mangling은 컴파일러에서 이름이 중복되지 않도록 독특한 이름을 지어주는 것으로
C++에서 overloading을 지원하기 하는데 사용되기도 한다고 한다. [링크 : http://rubyeye.kr/]
int _cdecl f (int x) { return 0; } // _f
int _stdcall g (int y) { return 0; } // _g@4
int _fastcall h (int z) { return 0; } // @h@4
$ c++filt --help
Usage: c++filt [options] [mangled names]
Options are:
[-_|--strip-underscore] Ignore first leading underscore
[-n|--no-strip-underscore] Do not ignore a leading underscore (default)
[-p|--no-params] Do not display function arguments
[-i|--no-verbose] Do not show implementation details (if any)
[-t|--types] Also attempt to demangle type encodings
[-s|--format {none,auto,gnu,lucid,arm,hp,edg,gnu-v3,java,gnat}]
[@<file>] Read extra options from <file>
[-h|--help] Display this information
[-v|--version] Show the version information
Demangled names are displayed to stdout.
If a name cannot be demangled it is just echoed to stdout.
If no names are provided on the command line, stdin is read.
Report bugs to <http://www.sourceware.org/bugzilla/>.
To install Vim on Debian Linux (GNU Linux), login as root and when connected to internet type -
apt-get install vim vim-rt
It will download the latest version of vim, install it, configure
it. The first package listed is vim, the standard editor, compiled with
X11 support, vim-rt is the vim runtime, it holds all the syntax and
help files.
On Debian 3.0 (woody) and above, use 'apt-get install vim' instead. The vim-rt package is part of the main vim package.