rosieblue
[C] enum(์—ด๊ฑฐํ˜•) ์‚ฌ์šฉํ•˜๊ธฐ

enum์€ ์ •์ˆ˜ํ˜• ์ƒ์ˆ˜์— ์ด๋ฆ„์„ ๋ถ™์—ฌ์„œ ๊ด€๋ฆฌํ•˜๊ธฐ ์‰ฝ๊ฒŒํ•œ๋‹ค ๊ตณ์ด ์ƒ์ˆ˜์— ํ•˜๋‚˜ํ•˜๋‚˜ ๊ฐ’์„ ๋Œ€์ž… ์•ˆํ•ด๋„ ์•„๋ž˜์ฒ˜๋Ÿผ ์ดˆ๊นƒ๊ฐ’๋งŒ ์ง€์ •ํ•ด์ฃผ๋ฉด ์ซ˜๋ฅด๋ฅต 1์”ฉ ์ฆ๊ฐ€๋˜์–ด์„œ ํŽธ๋ฆฌํ•˜๋‹ค ๋งŒ์•ฝ ๊ฐ’์„ ํ•˜๋‚˜ํ•˜๋‚˜ ์ง€์ •ํ•ด์ฃผ๊ณ  ์‹ถ์œผ๋ฉด ๊ทธ๋ ‡๊ฒŒ ํ•ด๋„ ๋œ #include enum DayOfWeek { // ์—ด๊ฑฐํ˜• ์ •์˜ Sunday = 0, // ์ดˆ๊นƒ๊ฐ’ ํ• ๋‹น Monday, Tuesday, Wednesday, Thursday, Friday, Saturday }; int main() { enum DayOfWeek week; // ์—ด๊ฑฐํ˜• ๋ณ€์ˆ˜ ์„ ์–ธ week = Tuesday; // ์—ด๊ฑฐํ˜• ๊ฐ’ ํ• ๋‹น printf("%d\n", week); // 2: Tuesday์˜ ๊ฐ’ ์ถœ๋ ฅ return 0; } ์—ด๊ฑฐํ˜•์€ ์‰ผํ‘œ๋กœ ๊ตฌ๋ถ„ ์ดˆ๊นƒ๊ฐ’ ํ• ๋‹นํ•˜๋ฉด ๊ฑฐ๊ธฐ์„œ๋ถ€ํ„ฐ 1์”ฉ ์ฆ๊ฐ€ํ•จ ๋งจ..

article thumbnail
[C/C++] mmap ํ•จ์ˆ˜

์˜ค๋Š˜์€ pwnable์— ๋งŽ์ด ๋‚˜์˜ค๋Š” mmap ํ•จ์ˆ˜์— ๋‹ค๋ค„๋ณด๋„๋ก ํ•˜๊ฒ ๋‹ค. mmap์ด ๋ฌด์—‡์ด๊ณ  ์™œ ์“ฐ๋Š”์ง€? ์ผ๋‹จ mmap์€ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์–ด๋–ค ํŒŒ์ผ ํ˜น์€ ๋””๋ฐ”์ด์Šค์— ๋Œ€์‘์‹œํ‚ค๋Š” ํ•จ์ˆ˜์ด๋‹ค. ๊ทธ๋ ‡๋‹ค๋ฉด "๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํŒŒ์ผ๋กœ ๋Œ€์‘์‹œํ‚จ๋‹ค๋Š” ๊ฒƒ"์ด ๋ฌด์Šจ ๋œป์ด๊ณ  "์™œ" ๊ทธ๋ž˜์•ผ๋งŒ ํ• ๊นŒ? ๐Ÿค” ์ปดํ“จํ„ฐ ํ”„๋กœ์„ธ์Šค์—์„œ ๊ฐ ํ”„๋กœ์„ธ์Šค๋Š” ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค์™€ ๋ถ„๋ฆฌ๋œ ์ฃผ์†Œ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์–ด ์„œ๋กœ ๊ฒน์น˜์ง€ ์•Š๋Š”๋‹ค. ์ฆ‰ ํ”„๋กœ์„ธ์Šค ๋ฉ”๋ชจ๋ฆฌ๋Š” ์„œ๋กœ ์ค‘๋ณต๋˜์ง€ ์•Š๋Š”๋‹ค. ๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์— ํ”„๋กœ์„ธ์Šค ๊ฐ„ ๋ฐ์ดํ„ฐ ๊ณต์œ ๊ฐ€ ์–ด๋ ต๋‹ค. ๋ฌผ๋ก  ์ด๋Š” ํ”„๋กœ์„ธ์Šค ์•ˆ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณดํ˜ธํ•˜๊ธฐ์—๋Š” ์ข‹์œผ๋‚˜.. ์ €๋Ÿฐ์‹์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๊ณต์œ ํ•˜๊ณ  ์‹ถ์„ ๋•Œ๋Š” ์‚ฌ์‹ค ๋ถˆํŽธํ•  ๊ฒƒ์ด๋‹ค. ํ•˜์ง€๋งŒ mmap์„ ์ด์šฉํ•˜๋ฉด ๊ณต์œ ํ•˜๊ณ ์žํ•˜๋Š” ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์•„์˜ˆ ํŒŒ์ผ๋กœ ๋Œ€์‘์‹œ์ผœ๋†“๊ณ , ์ด๋ฅผ ์—ฌ๋Ÿฌ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ํŒŒ์ผ์€ ์ „์—ญ์ ์ธ ๊ฐ์ฒด์ด..

article thumbnail
[C/C++] setbuf,setvbuf ํ•จ์ˆ˜ ์ •๋ฆฌ

void setbuf (FILE * stream, char *buffer); stream์„ buffer๋งŒํผ ์‚ฌ์šฉํ•ด์ค€๋‹ค๋Š” ์˜๋ฏธ ์ง€์ •ํ•ด์ค€ buffer๋Š” ์ž…์ถœ๋ ฅ ๋ฒ„ํผ๋กœ ์‚ฌ์šฉํ•  ๋ฉ”๋ชจ๋ฆฌ์ด๋‹ค. ๋ฒ„ํผ์ž์ฒด๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒŒ ์•„๋‹ˆ๋ฏ€๋กœ ๋ฒ„ํผ์—๋Š” ์•„๋ฌด๋Ÿฐ ๋ณ€ํ™”๊ฐ€ ์—†๋‹ค. (??) stream stdin(ํ‘œ์ค€์ž…๋ ฅ, 0) stdout(ํ‘œ์ค€์ถœ๋ ฅ, 1) stderr(ํ‘œ์ค€์—๋Ÿฌ, 2) char buf[512]; setbuf('ํŒŒ์ผ์ด๋ฆ„',buf); ์ด๋ฉด ํŒŒ์ผ ํฌ์ธํ„ฐ๋ฅผ 512byte๋งŒํผ ์‚ฌ์šฉํ•˜๊ฒ ๋‹ค๋Š” ์˜๋ฏธ!! setbuf('ํŒŒ์ผ',NULL); ์ด๋Ÿฐ์‹์œผ๋กœ ๋˜์–ด์žˆ์œผ๋ฉด ํ•จ์ˆ˜ ๋‚ด๋ถ€์—์„œ ํ•„์š”ํ•œ๋งŒํผ ํฌ๊ธฐ๋ฅผ ํ• ๋‹นํ•ด์„œ ์‚ฌ์šฉ!! ์˜ˆ์ œ1) #include int main(void) { char buf[512]; FILE *fp = fopen("test.txt", ..

[C/C++] What is Pointer? - Pointer and Addresses

Before getting started .. // This course is going to deal with pointer basics in C for beginners. // EVERY C COURSE WILL BE IN ENGLISH. // Every question in English or Korean is always welcome :) Hi you all! This is Hannah, your new programming mate! And today we're going to learn about the meaning of pointer and addresses. POINTER and ADDRESSES pointer : A pointer is a 'variable' which stores '..