본문 바로가기

Programming/C++20

정규식 IP주소만 추출하는 방법 in Qt5 Qt5에서 제공하는 정규식 함수 globalMatch() 를 사용하여 문자열에 섞여 있는 ip주소를 추출하는 방법이 있습니다. IP 주소와 문자가 섞여있을 때 IP주소만 추출하는 방법을 알아보도록 하겠습니다. 1. IP 추출 예제 코드 #include QString stringWithIP = "local 192.168.1.1 google 172.217.175.238 naver 23.130.200.104"; QRegularExpression re("(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)"); QRegularExpressionMatchIterator i = re.globalMatch(st.. 2021. 11. 6.
swp 파일 삭제해도 괜찮을까? 생성되는 이유(in Linux) Linux 계열의 ubuntu, mac OS 환경에서 vi editor를 사용하여 파일을 작업하는 경우, 가끔 swp 파일이 생겨 있는 경우를 볼 수 있습니다. swp 파일의 역할과, 생성되는 이유, 그리고 삭제 여부에 대해 알아보도록 하겠습니다. swp 파일이란? swp 파일은 vi editor 또는 vim editor에서 생성하는 파일로서, 강제 종료와 같은 비정상적인 상황을 대비하여 현재 작업 중인 내용을 swp 파일에 저장하는 역할을 합니다. 또한 이미 작업 중인 파일을 새로운 editor에서 open 할 경우, 경고 메시지를 날려 중복 작업을 방지해주는 역할도 합니다. 일반적으로 파일 수정 이후 정상적으로 저장되고 종료되면 swp 파일도 자동으로 삭제됩니다. swp 파일이 생성되는 경우 파일 수.. 2021. 10. 31.
fsync() 와 sync() 차이점 및 활용법(linux, Qt5) 파일을 새로 만들고 저장하면, 내 하드 디스크에 바로 그 즉시 저장될까? 정답은 아니다. 실제로 우리가 새로 만든 파일은 우선 메모리 버퍼에 저장되며 운영체제(커널)가 판단하여 일정 시간이 지난 뒤 하드 디스크에 저장한다. 파일을 복사 또는 저장 후 컴퓨터 전원을 바로 끊어버리는 경우, 혹은 용량이 아주 큰 파일을 USB로 복사하고 추출 버튼을 누르지 않은 채 곧바로 USB를 빼는 경우, 파일이 깨지거나 복사가 되지 않을 수 있다. 아직 버퍼에 남아 있는 상태에서 물리적으로 연결을 끊으면 저장이 되지 않는다. 만약 파일 생성 및 복사 후 하드 디스크에 곧바로 저장하고 싶다면 fsync() 함수 또는 sync() 함수를 사용하면 된다. 1. fsync() 변경 파일(data와 metadata)을 하드 디스.. 2021. 10. 24.
removeRecursively 한글 파일 삭제 실패 해결방법(Qt5) 리눅스 환경에서 Qt를 사용하여 개발을 하다 보면 가끔 파일이 완벽하게 삭제가 안되는 경우가 있습니다. removeRecursively 함수 삭제 실패 원인과 해결 방법에대해서 알아보겠습니다. Qt5 Linux 한글 파일 포함된 폴더 삭제 시, 실패 현상 발견 리눅스(Linux) 환경에서 removeRecursively() 함수를 사용하여 폴더 삭제를 하면 항상 파일명이 한글로 된 파일이 남아 있었습니다. 그리고 removeRecursively() 결과는 항상 false값을 반환했습니다. QDir dir(path); if (dir.removeRecursively()){ return true; } else { return false; //폴더 안에 한글 파일이 포함되면 실패한다... } 의문이 드는 점은 .. 2021. 10. 23.