분류 전체보기 (192) 썸네일형 리스트형 Linux) Capabilities 리눅스 Capability 도입 배경 - root로 실행 시 process의 privilege가 너무 막강함 => privilege를 세분화할 필요성 - root가 탈취 되도 안전하다 => capabilities를 통해 권한을 낮춰놓았으니 Capability 모델 - Root 권한을 세분화 해서 하나의 capability로 나타냄 - 예) = CAP_CHOWN = CAP_DAC_OVERRIDE - 파일시스템과 결합되어 사용됨 => executable 파일에 capabilties를 attach 함 - 파일과 프로세스는 Inherited Set, Permitted Set, Effective Set, Bounding Set 을 가짐 = Effective Set: 유효한 권한 (필요 시 permitted set.. C++) 함수를 static으로 선언 declare 한다는 것 멤버 함수를 static으로 호출 한다는 것 class instance를 만들지 않고 함수를 호출하겠다는 것 class의 static 멤버 변수만 가지고 놀려는 것 그 반면 일반 함수를 static으로 호출 한다는 것 static int getInt(int i) // 이 둘의 차이는 int getInt(int i) global 함수와는 다르게 static local 함수가 됨 이 말이란 같은 파일 내의 함수들 내에서만 static 함수를 호출 할 수 있음 C++) check whether file exists 파일 존재 여부 확인 [access(2)] 파일 존재 여부 확인 시 자주 사용하는 함수는 access 라는 함수 입니다. 함수의 정의 int access(const char* pathname, int mode) mode에는 파일의 어떤 부분을 확인 할지 전달 F_OK (파일 존재 여부) R_OK (파일 읽기 권한 여부) W_OK (파일 쓰기 권한 여부) X_OK (파일 실행 권한 여부) 함수의 반환 값 성공 시 zero 반환 실패 시 -1 반환 (errno is set) set 되는 errno 리스트 EACCES (권한 부족) ELOOP 등 사용 예제 확인 할 파일 경로 (const char *) : "/tmp/file" 확인 할 파일 부분 (int) : F_OK #include const char* file_path = "/tmp/file"; .. C++) static 멤버 변수 life cycle class encapsulation과 관계가 있다 static 멤버 변수는 외부에서 global하게 initialize 되어야 한다. static 멤버 변수는 class 내부에서 private 하게 선언되어 있어야 효과가 있다 외부 사람들은 쓰려면 클래스에서 정의된 getter 함수를 사용하여야 한다. C++) [스마트 포인터] weak_pointer, unique_pointer, shared_pointer unique_ponter는 이름이 말하듯이 unique 하게 한 곳에서만 해당 객체를 사용할 때 다른 곳에서는 쉽게 사용하지 못하도록 막는 smart pointer 이다. shared_pointer는 약점이 있다. A -> B를 참조하고 B -> A를 참조 할 때 메모리를 해제 할 수 없다. Scope에서 벗어나 A를 해제 하였을 때 B -> A를 참조해서 삭제 안됨. Scope에서 벗어나 B를 해제 하였을 때 A -> B를 참조해서 삭제 안됨. weak_pointer를 사용해서 위 문제를 해결 할 수 있다. B -> A shared_pointer를 이용하는 weak_pointer로 만들면 참조는 가능하지만 ref count를 증가시키지 않는다 weak_pointer는 ref count를 증가시키지 않는.. C++) Reader-Writer 문제로 본 mutex와 condition variable Mutex lock 함수로 임계 구역 (critical section) 진입 전 자신만 임계 구역에 들어가겠다고 함 unlock 함수로 임계 구역 탈출 후 다른 사람들도 임계 구역에 진입 가능하도록 만듬 Condition Variable wait 시 인자로 받은 mutex를 unlock 함 notify_one 함수로 잠자는 것들 중 하나를 깨울 수 있음 notify_all 함수로 잠자는 것들 모두를 깨울 수 있음 Reader-Writer 문제에서 mutex와 condition variable을 사용한다면 std::mutex mtx; std::condition_variable cv; int num_writers_waiting; bool writer_active; int num_readers_active; .. C++) std::bind 와 std::placeholders (std::placeholders::_1, std::placeholders::_2, ...) std::bind std::bind를 알려면 std::function을 알아야 해요 std::function C+11에서 나온 함수 포인터로 사용 할 수 있는 std::function std::function name = &함수 이런 식으로 선언을 해요 예) std::function myFunc = &calculate; 이때 calculate는 이미 bool calculate(int, int) 라는 형식을 갖고 선언이 되있어요. 그러면 다시 std::bind를 볼께요 std::bind std::bind는 반환값이 std::function 인데요 특정 인자를 갖거나 특정 객체의 함수를 부르도록 구체적인 std::function을 제공해요 위의 예) std::function myFunc = &calculat.. 핫플레이스) 요새 핫한 "힙지로" 에 있는 [을지로 미팅룸] 을 다녀왔어요 여러분 안녕하세요. 요새 아주 핫한 을지로, 일명 힙지로, 를 L&S가 다녀왔어요. 을지로3가 역에서 11번 출구로 나왔어요. 11번 출구를 나와서 쭉 걸어가요. 한 150M 정도 걷다 보면, 오른쪽 약간 으스스한 골목이 보여요. 들어가요. 짜자잔~ 으스스한 골목을 지나면 힙지로 거리가 나와요. 힙지로 거리를 쭉 걷다보면 왼편에 을지로 미팅룸 간판이 작게 보일거에요. 빌딩 1층에는 이렇게 인쇄소가 있어요. 계단으로 2층으로 올라가요. 을지로 미팅룸은 이전에 다방으로 쓰던 장소를 리모델링 했다고 들었어요. 과거로 돌아온 듯한 느낌. 이게 바로 힙지로 갬성 이라네요. 건물이 오래되서 화장실은 좋지 못해요. 참고 해주세요. 줄을 선 대로 입장 시켜주세요. 꼼짝않고 줄을 서야겠죠? Large & Sm.. 이전 1 ··· 16 17 18 19 20 21 22 ··· 24 다음