프로그래밍68 [1부 코드와 마주보기] Chapter1 방어하기 방어적 프로그래밍이란? 더 안전한 코드를 위한 전략 제약과 어설션(assertion) 훌륭한 코드를 향해서 우리는 훌륭한 코드를 목표로 삼아야 한다. 방어적 프로그래밍은 잠재적인 코딩 문제가 쌓여가는 것을 방지하는 실무적인 방법. 최악을 가정하라 추측은 결함 있는 소프트웨어의 작성 원인이며, 방어적 프로그램을 작성할 때는 아무것도 추측하지 말아야 합니다. 각 단계에서 코드에 어떤 나쁜 일이 생길 수 있는지 생각해보자 사용자의 제어권 밖에 있는 일이 잘못될 수도 있다는 사실 (네트워크 오류, 디스크 풀, 컴퓨터 다운) 당장 할 수 있는 약간의 추가 작업을 건너뛰어서, 나중에 세상 전체를 고통과 지연으로 부터 구할 수 있는 기회를 놓치지말자. 험한 세상 방어적 프로그래밍은 이런 계획적인 악용을 경계하면서 프.. 2017. 9. 21. 제4장 파일과 디렉터리 UNIX 고급 프로그래밍국내도서저자 : 리처드 스티븐스,스티븐 레이고 / 류광역출판 : 퍼스트북 2014.08.28상세보기 4.17 기호링크 도해 4.17 여러 함수들의 기호 링크 처리 방식함수 기호 링크를 따라가지 않음 기호 링크를 따라감 access O chdir O chmod O creat O exec O lchown O link O lstat O open O opendir O pathconf O readlink O remove O rename O stat O truncate O unlink O 예외 O_CREAT와 O_EXCL을 모두 설정해서 open 함수를 호출했을 때, 만일 지정된 경로이름이 기호 링크이면 open 호출이 실패하고 errno가 EEXIST로 설정된다. 보안구멍을 막기 위해서! .. 2017. 9. 20. linux 프로그램 실행 에러 /lib/ld-linux.so.2: bad ELF interpreter: 그런 파일이나 디렉터리가 없습니다yum install ld-linux.so.2 을 사용해서 설치 하면 정상 동작 가능 libgcc_s.so.1 must be installed for pthread_cancel to workyum install libgcc_s.so.1을 사용해서 설치 하면 정상 동작 가능 2013. 6. 24. strrncmp 함수 static int strrncmp(const char* s1, const char* s2, int num) { int len1 = strlen(s1) - 1; int len2 = strlen(s2) - 1; for (; len1 >= 0 && len2 >= 0 && num > 0; len1--, len2--, num--) { const int d = (int)s1[len1] - (int)s2[len2]; if (d != 0) return d; } return 0; } 2013. 6. 3. LINUX 빌드 후 mysql_query() 함수 Segmentation fault LINUX 빌드 후 mysql_query() 함수 Segmentation fault mysql_real_connect() return 값이 음수가 나오면서 mysql_query()에서 Segmentation fault 발생 다음 상황은 같은 소스를 AIX에서 빌드하는것과 LINUX에서 빌드하는게 차이가 있고AIX에서는 정상적으로 동작함 원인: 빌드 시 warning: implicit declaration of function 'db_connect' 발생결과: 해당 함수를 사용하는 소스에 선언을 해주면 문제 해결 됨 extern MYSQL *db_connect(char *); 2013. 5. 10. ld: 0711-317 ERROR: Undefined symbol: .floor 빌드 에러ld: 0711-317 ERROR: Undefined symbol: .floor -lm 옵션 추가 2013. 5. 9. 이전 1 ··· 8 9 10 11 12 다음