
프로그래밍/C
해당되는 글 7건

[C] 문자열을 다룰 땐 항상 깊은 복사와 얕은 복사를 고려합시다..
요새 UNIX 시스템 프로그래밍을 배우면서 C언어로 system call() 을 호출해서 리눅스 tree 명령어 출력을 C언어에서 그대로 구현하는 과제를 진행중입니다. 코딩병이 도져서 오후 11시쯤부터 도전해서 오전 6시까지 프로그래밍 하는 기행을 보였으나.. 완성이 머지 않았는데 재귀적으로 tree() 를 호출하면서 출력을 진행 하면서 중간에 자꾸 메모리가 소멸하는 문제가 발생하였습니다. 디버깅.. 디버깅을 해야하는데..! 리눅스를 VMware 가상 환경으로 돌리고 있어서 훌륭한 디버거 기능을 가진 Visual Studio는 윈도우 전용이라 사실상 사용할 수 없었고, VSCode 에서 gdb를 이용해서 하나 하나 디버깅을 해야 하는 골때리는 상황이 생겼습니다. 사실 저는 주 관심사가 C#이나 Pytho..
[C] 메모리 관련 함수 memset(), memcpy(), memmove(), memcmp(), memchr() 알아보기
안녕하세요 파일입니다. 이번 UNIX 시스템 프로그래밍 과목을 수강하면서 따로 배우지 않고 넘어갔던 메모리 관련 함수 memcpy() 를 만나게 되었습니다. 메모리 함수에 대해선 따로 학습하지 않아서 적잖게 당황을 했는데 그런 김에 메모리 관련 함수의 레퍼런스를 정리해보면 좋을 거 같다는 생각이 들어서 본 글을 작성하게 됐습니다. 그래서 오늘 알아볼 함수들은 memset(), memcpy(), memmove(), memcmp(), memchr() 이 되겠습니다. 본 함수들은 메모리에 지정된 바이트 만큼 접근하는 함수로써 C언어를 전부 공부하시고 데이터가 메모리에 어떻게 저장되고 있는지 제대로 이해하신 후, 추가로 학습하시는걸 추천드립니다. * 참고로 본 글 예제는 대부분 Copilot AI로 생성한 것입..[C++] ESP 핵 제작 가이드
https://www.youtube.com/watch?v=SPHARh6ukog
[C] opendir로 파일 읽을때 유니코드, 한글 경로 읽기 및 파일 타입 체크 방법
#include #include //dirent 구조체를 위해 dirent.h 참조 #include int main(void) { int length = 0; char file_path[100]; printf("폴더 경로를 입력해주세요. : "); gets(file_path); DIR *d; struct dirent *dir; d = opendir(file_path); if (d) { while ((dir = readdir(d)) != NULL) { printf("%s\n", dir->d_name); length++; } closedir(d); printf("총 발견한 파일수 : %d개", length); //열린 디렉토리를 닫는다. } return 0; } 해당 프로그램을 실행해서 디렉토리 경로를 입력..
[C] 변수 여러개 선언, 초기화 할때 주의점
C언어에서 자료형이 같은 변수를 여러개 선언할땐 콤마(,)로 구분지어 선언합니다. int a,b; 이것을 0으로 한꺼번에 초기화 할땐 어떻게 해야할까요? 저는 처음에 이런식으로 진행했습니다. #include int main(){ int a, b = 0; printf("%d %d", a,b); return 0; } 이렇게 쓰고 혹시 두개가 초기화가 제대로 안됬을까 a,b도 출력해봤더니 0 0으로 정상 출력되어서 아무런 의심도 하지 않았죠. 이런 생각으로 백준을 푸는데 너무 쉬운문제가 통과를 안하는겁니다.. https://www.acmicpc.net/problem/5596 5596번: 시험 점수 대한고등학교에 재학 중인 민국이와 만세는 4과목(정보, 수학, 과학, 영어)에 대한 시험을 봤습니다. 민국이와 만..