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", ..

article thumbnail
[JAVA] Optional์˜ isPresent / ifPresent / ifPresentOrElse ๋ฉ”์†Œ๋“œ

Optional์„ ๋”ฐ๋กœ ๊ณต๋ถ€ํ•œ ์ ์ด ์—†์–ด์„œ ๋Œ€์ถฉ ์˜ค๋ฅ˜๋งŒ ๋ดค์„ ๋•Œ ์—ฌํƒœ๊ป isPresent์ด๋ž‘ ifPresent๊ฐ€ ๊ฐ™์€ ์• ์ธ์ค„ ์•Œ์•˜๋‹ค .. ๋ฐ”๋ถ€ ๊ทธ๋ž˜์„œ isPresent()์•ˆ์— ์ธ์ž๋กœ ์™œ ๋žŒ๋‹ค์‹์„ ์จ์ฃผ๋Š”์ง€ ์ดํ•ด๊ฐ€์•ˆ๋๋‹ค..ํ•˜์ง€๋งŒ ๋‹ค๋ฅธ ๋ฉ”์†Œ๋“œ์˜€๋‹ค๋Š”๊ฒƒ ใ…‹.. ํฌ์ŠคํŠธ๊ฐ€ ๋„ˆ๋ฌด ์งง์Œ ์ฃผ์˜ ์•”ํŠผ ์˜ค๋Š˜์€ Optional์ด ๋ญ”์ง€ ์•„์ฃผ ์งง๊ฒŒ ์‚ดํŽด๋ณด๊ณ  isPresent/ifPresent/ifPresentOrElse ๋ฉ”์†Œ๋“œ์— ๋Œ€ํ•ด ์‚ดํŽด๋ณด๋„๋ก ํ•˜๊ฒ ๋‹ค. Optional์ด๋ž€? ์กด์žฌํ•  ์ˆ˜๋„ ์žˆ์ง€๋งŒ ์•ˆ ํ•  ์ˆ˜๋„ ์žˆ๋Š” ๊ฐ์ฒด, ์ฆ‰, “null์ด ๋  ์ˆ˜๋„ ์žˆ๋Š” ๊ฐ์ฒด”์„ ๊ฐ์‹ธ๊ณ  ์žˆ๋Š” ์ผ์ข…์˜ ๋ž˜ํผ ํด๋ž˜์Šค์ด๋‹ค. ์›์†Œ๊ฐ€ ์—†๊ฑฐ๋‚˜ ์ตœ๋Œ€ ํ•˜๋‚˜ ๋ฐ–์— ์—†๋Š” Collection์ด๋‚˜ Stream์ด๋ผ๊ณ  ์ƒ๊ฐํ•ด๋„ ์ข‹๋‹ค. null ๋•Œ๋ฌธ์— ์ƒ๊ธฐ๋Š” ๊ท€์ฐฎ์Œ์„ ํ•ธ๋“ค๋งํ•˜๊ธฐ ..

article thumbnail
[JAVA] Stream ์ด๋ž€?

SpringBoot๋กœ Java๋ฅผ ์˜ค๋žœ๋งŒ์— ์‚ฌ์šฉํ•˜๊ฒŒ ๋˜์—ˆ๋Š”๋ฐ ์•„๋ž˜ ์ฝ”๋“œ๊ฐ€ ์›๋ฆฌ๊ฐ€ ๋ญ”์ง€๊ฐ€ ์ดํ•ด๊ฐ€ ์•ˆ๋ผ์„œ Java ๋ฌธ๋ฒ•์„ ๊ณต๋ถ€ํ•ด๋ณด์•˜๋‹ค. ์ด๋ฒˆ ํฌ์ŠคํŠธ์—์„œ๋Š” Stream์˜ ๊ฐœ๋…์„ ๋‹ค๋ฃฌ ํ›„ ์•„๋ž˜ ์ฝ”๋“œ์˜ ๋™์ž‘ ์›๋ฆฌ๋ฅผ ๋ถ„์„ํ•ด๋ณผ ๊ฒƒ์ด๋‹ค. public Optional findByName(String name) { return store.values().stream() .filter(member -> member.getName().equals(name)) .findAny(); } ์ผ๋‹จ ๊ฐœ๋…๋ถ€ํ„ฐ ์งš๊ณ  ๋„˜์–ด๊ฐ€๋ณด์ž. Stream์˜ ์šฉ๋„์™€ ๊ตฌ์กฐ Java8์—์„œ๋ถ€ํ„ฐ ์ง€์›ํ•œ ๊ธฐ๋Šฅ์œผ๋กœ, ์ผ์ข…์˜ ๋ฐ˜๋ณต๋ฌธ์„ ๊ฐ„๋‹จํ•˜๊ฒŒ ๋‚˜ํƒ€๋‚ธ ๊ฒƒ์ด๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ๋‹ค. Stream์€ ์ปฌ๋ ‰์…˜์ด๋‚˜ ๋ฐฐ์—ด, ๋ฆฌ์ŠคํŠธ ๋“ฑ์— ์žˆ๋Š” ๊ฐ’๋“ค์„ ์ฐธ๊ณ ํ•˜์—ฌ ๊ทธ ๊ฐ’๋“ค์— ๋Œ€ํ•ด์„œ ์—ฐ์‚ฐ์„ ํ•ด์ฃผ๋Š”..

[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 '..