분류 전체보기 289

리눅스 디렉토리 관리

디렉토리 만들고 삭제하는 mkdir, rmdir 함수에 대해 알아보자. 먼저 디렉토리를 생성하는 mkdir 함수이다. mkdir로 디렉토리를 생성하면 자동적으로 dot(.), dot-dot(..) 디렉토리가 생성된다. 권한에 대해 설정할 때 읽기,쓰기만 설정하고 실행권한을 설정안하면 디렉토리 안에 있는 파일에 대해 접근이 불가능하다.(주의) ,,, 다음 디렉토리를 삭제하는 rmdir 함수이다. 디렉토리 안에 파일이 있으면 안된다. dot, dot-dot 디렉토리만 있는 상태여야 삭제가 됨. 디렉토리 읽기 이번에는 디렉토리 읽기에 관련된 함수들에 알아보자. 디렉토리 읽기라 함은.. ls 명령을 치는 것과 일맥상통한다. 디렉토리에 대한 읽기는 누구나 가능하다. 초기 UNIX 시스템에서는 디렉토리 구조가 총 ..

리눅스 환경의 파일 관리

파일을 관리하기 위한 여러가지 기능의 함수들에 대해 알아본다~~ 파일 쪼개기 먼저 파일을 절단(?)할 때 사용하는 truncate() 계열 함수에 대해 알아보자. open() 함수를 사용할 때 새로 파일을 만들때 O_TRUNC 옵션을 줬던걸 기억하는지.. 이 truncate 함수를 이용해서 파일 자르는 경우의 일부라고 볼 수 있다. (통째로 다 짤라 버린다는 말) truncate와 ftruncate 두가지가 있는데, 앞서 공부한 함수들과 마찬가지로.. open된 파일에 대해 절단을 하려면 ftruncate 쓰면된다. 파일을 잘라서 파일의 크기를 length만큼 만드는 것. 하드링크 생성 및 삭제 link와 unlink에 대해 알아보자. 하드링크 파일을 만들고 링크 카운트를 줄이는 함수이다. newpath..

리눅스 파일 권한

리눅스 파일 권한에 대한 이야기를 하겠다. 리눅스 운영체제가 여러명의 유저가 사용 가능하도록 계정이 존재하는 것은 알거임. 여러명의 사용자가 동시에 OS를 사용하는데.. 권한이 각자 다르겠지. 관리자 권한이 있고, 자원 접근이 한정적인 일반 사용자 계정이 있을 것이고, 또 권한에 따른 그룹도 존재할 것이다. $ls -al 명령을 디렉토리 내에 있는 파일들의 리스트가 나온다. 우리가 볼 것은 파일 목록 앞에 적힌 " drwx------ " 패턴으로 이루어진 문자들. 바로 오늘 얘기한 권한에 관련된 내용이 표시된 부분이다. drwxrwxr-x 2 student student ​이놈들이 뭘 뜻하는 걸까. 먼저 맨 앞 d는 디렉토리인지 파일인지 구분하는 것이다. d가 되어있으면 디렉토리, -는 파일 다음 rwx..

리눅스 파일 분류

보통 알고있는 파일의 종류는 그냥 파일(정규파일..regular file)과 디렉토리인데, 사실 디렉토리도 파일의 일종이다. 파일은 여러가지 종류가 있다. 음.. 이건 기본적으로 알아야 한다고 생각한다. 1. 정규 파일(Regular file) 우리가 알고있는 파일이다. 웬만한 파일이 다 정규 파일이다. 다만 실행파일은 다름.. (ELF 파일 포맷을 따른다.) 리눅스에서는 이 파일이 텍스트인지 바이너리인지 구분을 하지 않는다. 그냥 냅다 읽어버릴뿐 그니까 정규 파일의 형식은 응용프로그램 단에서 결정하는 것임. 2. 디렉토리 파일(Directory file) 디렉토리도 파일의 일종이라고 했었다. 디렉토리 파일은 다른 파일의 이름과 그 파일들에 대한 정보를 가르키는 포인터들을 담은 파일이다. 3. 블록 특수..

리눅스 파일 입출력 관련 시스템콜 함수

먼저 open함수에 대해서 알아보자. 이름그대로 파일을 여는 시스템콜 함수이다. 파일을 read하든, write하든 일단 파일을 열어야 할 것이 아닌가? 하여튼 파일 입출력에서 가장 기본이 되는 함수이다. 일단 기본 함수 레퍼런스와 각 인자들이 뜻하는 바를 알아보자. #include int open(cosnt char *pathname, int oflag, ... /* mode_t mode */); fcntl.h 헤더파일을 사용해야 하고 반환 값은 성공한다면 파일 디스크립터값을 리턴하고, 실패한다면 -1을 리턴한다. char *pathname 파일의 경로를 포함한 이름을 나타내는 문자열 포인터 int oflags 어떤 방식으로 파일을 오픈 할 것인가에 대한 내용. 여러가지 값들이 있다. mode_t mo..

파이썬 파일 핸들링 (파일 입출력)

1. 파일 오픈, 쓰기 file 함수를 쓰던지 open 함수를 써서 파일을 생성할 수 있다. 파이썬 2.2 이전 버전에는 open으로만 열었다. file 함수를 이용하여 텍스트 파일을 하나 생성하였다. example.txt 라는 파일을 w(쓰기) 권한을 주고 만들었다. 그 뒤에는 여타 언어들의 파일 입출력과 같다. 파이썬은 매우 간결하다. 2. 파일 읽기 이렇게 하면 읽힌다. 여기선 close를 하지 않았는데, 객체가 다른 값으로 치환되거나 사라질 때 close하지 않아도 무리가 없다. 3. 라인 단위로 파일 읽기, 쓰기 여기서는 3가지 메소드가 제공된다. readline, readlines, xreadlines 먼저 readline은 한 번에 한줄 씩 읽는 것이고, readlines는 파일 전체를 라인..

파이썬 struct 모듈 (pack, unpack)

파이썬 자료형과 c언어 구조체형 사이에서 데이터 변환을 할 때 사용하는 것이다. 이 친구들은 당연히 import struct 를 해줘야 사용이 가능하지. C 프로그램이 파일에 저장한 바이너리 정보들을 가져와서 파이썬으로 읽어낼 때, 혹은 파이썬으로 C프로그램이 원하는 형식으로 자료를 파일에 저장할 때 쓴다. struct 모듈의 pack과 unpack, calsize 등을 사용할 수 있는데~ 한번 알아봅시다. - pack( format, v1, v2, v3, ....) - unpack( format, string ) - calcsize( format ) struct 모듈의 기능을 사용하기 위해 파이썬에서 지정해둔 포맷 스트링있다. C언어의 %d 같은 것들. 아마 알아두는게 좋을 듯 싶다. 내가 이걸 왜 할..

파이썬 람다(Lambda) 함수

파이썬 람다 함수에 대해 알아보자. 쉽게 말해서 한줄에 함수를 축약하여 정의해주는 함수이다. 간결하고 코드 구현이 비교적 간단한 파이썬이란 언어에 아주 적합한 함수라고 볼 수있다. lambda args : expression 이런식으로 표현이 가능하다. 예를 들어, a = lambda x,y : x+y b = a(3,4) # b는 5 이거 보다 더 쉽게 함수 이름같은 것도 정의할 필요 없이 쓸 수도 있다. print (lambda x,y : x+y)(20,30) 30 출력. 뭐 이렇게.

파이썬에서 객체 복사 (copy, deepcopy)

파이썬에서 객체의 복사에는 두가지 종류가 있다. 참조 복사와 실제 객체 복사. 참조 복사는 이전에 언급했었던 레퍼런스 카운트가 증가하는 복사이다. 주소만 복사한다는 말. 그냥 같은 값을 참조하도록 하는 것이다. 다음 실제 객체 복사. 이거는 종류가 두가지 있다. 얕은 복사, 깊은 복사 얕은 복사 - 객체 값 자체를 복사하되 원래 레퍼런스로 채우는 것. (참조복사는 그냥 같은 곳을 참조만 하는거) 깊은 복사 - 아예 새로 만들어 내용도 새로 채운다. 둘다 copy 모듈을 이용하여 한다. copy.copy() 얕은 복사 copy.deepcopy() 깊은 복사

파이썬 문자열 활용

문자열 포매팅(Formatting) 일종의 문서 양식을 만드는 것이다. 포맷 스트링을 이용하여 변동하는 부분을 대신함. %d %x 등으로 숫자도 표현가능. 튜플을 이용해서 문자열 포매팅을 한 것인데, 아래는 튜플을 이용해서 한 것임. 더 많은 방법이 있는데, 필요할 때 찾아서 할 생각. 많이 중요하다 여기지 않음. 문자열 메소드 백문이 불여일견이다. 먼저 대소문자 변환에 관한 메소드 문자열 검색에 관한 메소드 편집, 치환에 관한 메소드 가장 많이 쓰이는 분리, 결합 메소드이다. 정렬에 관련된 메소드 (아.. ㅠ 왜케 많음...) 마지막! 문자열 구성 요소 검사 메소드! 상기의 문자열 활용에서 나온 것들은 파이썬 내장 함수들을 사용한 것이었는데, 이번에는 string 이라는 파이썬 모듈을 임포트 시켜서 그..

반응형