본문 바로가기

전체 글

리눅스 에러코드 (linux error code) include/uapi/asm-generic/errno-base.h (1~34번까지)include/uapi/asm-generic/errno.h (35~133번까지) 에 정의되어 있다. (linux-5.7.11 기준) ValueMACROMeaning0 Success1EPERMOperation not permitted 2ENOENTNo such file or directory 3ESRCHNo such process 4EINTRInterrupted system call 5EIOI/O error 6ENXIONo such device or address 7E2BIGArgument list too long 8ENOEXECExec format error 9EBADFBad file number 10ECHILDNo ch.. 더보기
정수 승격(integer promotion), 묵시적 형변환 정수 승격이 무엇인지 살펴보기 전에 아래 코드에 대한 결과부터 고민해보자 123456789101112#include int main(){ char a, b; printf("sizeof(a) : %d, sizeof(b) : %d\n", sizeof(a), sizeof(b)); printf("sizeof(a + b) : %d\n", sizeof(a + b)); return 0;} Colored by Color Scriptercs 위 코드를 실행하면, sizeof(a + b)는 몇이 출력이 될까?char + char type이므로 당연히 char 타입의 size인 1(byte)이 출력 될 것이라 생각했다면정수 승격에 대해 아직 모르고 있다는 것! 위 코드를 실행한 결과는 아래와 같다. 왜 sizeof(a + .. 더보기
C언어 포인터와 배열(C언어 pointer and array) 1편 2020/10/17 - [Programming/C] - C언어 포인터 기본(C언어 basic pointer)2편 2020/10/17 - [Programming/C] - C언어 포인터 활용(C언어 use of pointer) feat. swap함수 1편에서 했던 포인터 타입들의 크기가 모두 동일한데 여러개의 포인터 타입이 존재하는 이유가 무엇인지 살펴보았다.(포인터 타입의 크기는 32bit machine에서는 4byte, 64 bit machine에서는 8byte이다) 결론을 다시 말하자면, 온전한 데이터를 읽으려면 지정된 주소부터 몇 byte를 읽어야 하는지 알려주기 위해서 포인터 타입이 존재한다 했다. 123int b = 0xffffffffint *pointerB = &b; cs 위 코드를 그림으.. 더보기