본문 바로가기
[linux] real uid(ruid), effective uid(euid), chmod 를 통한 SetUID, SetGID, StickyBit 설정 [linux] real uid(ruid), effective uid(euid), chmod 를 통한 SetUID, SetGID, StickyBit 설정 ruid, euid -real uid( real user id ) 는 실제 본인의 id 를 이야기한다.이 녀석의 값은 변하지 않는다. ( root 는 바꿀 수 있다. ) -euid 는 현재 휘두를 수 있는 권한을 나타낸다. euid 는 기본적으로 ruid 와 같은 값이다.그러나 setuid bit 이 세팅된 프로그램을 수행시킬 때, 다른 값으로 할당될 수 있다. -rwsr-xr-x 1 root root 45396 may 25 2012 /usr/bin/passwd passwd 파일( setuid bit 이 세팅되어 있음 )을 user2 라는 ruid 를 가.. 2018. 1. 26.
[Objective-C] 참조 카운터를 사용한 메모리 관리 방법 [Objective-C] 참조 카운터를 사용한 메모리 관리 방법 출처 : OS X 구조를 이해하면서 배우는 Objective-C Chap 5. Notice : 정리자(돼지왕 왕돼지)가 remind 하고 싶은 내용이나 모르는 내용 기반으로 정리하는 것이기 때문에 구체적인 내용은 책을 사서 보시기를 권장드립니다. 5.1. 동적 메모리 관리 * 5.1.1. 메모리 관리의 필요성 -이미 해제된 부분을 가리키는 위험한 포인터를 댕글링 포인터(dangling pointer) 또는 허상 포인터라고 부른다. * 5.1.2. 카운터 관리 방식과 ARC, 가비지 컬렉션 -Objective-C 2.0 에는 카운터 관리 방식과 다른, 가비지 컬렉션이라는 메모리 관리 방식도 이용할 수 있게 되었다.가비지 컬렉션은 프로그램의 일.. 2017. 12. 27.
[android] PageTransformer 와 함께 하는 ViewPager 의 화려한 animation [android] PageTransformer 와 함께 하는 ViewPager 의 화려한 animation 참조 : https://medium.com/@BashaChris/the-android-viewpager-has-become-a-fairly-popular-component-among-android-apps-its-simple-6bca403b16d4 -ViewPager.PageTransformater interface 를 구현하면 매번 screen transition 이 발생할 때마다 tansformPage() 함수가 불린다. -position 값은 screen 의 center 로 부터 해당 page 가 어디에 위치하느냐를 나타낸다.page 가 screen 전체를 가득 채웠을 때에는 0 값을 가진다... 2016. 10. 4.
[iOS Study] 코어 데이터 [iOS Study] 코어 데이터 출처 : 아론 힐리가스의 iOS 프로그래밍 -데이터를 로컬에 저장하는 방법은 “아카이빙” 또는 “코어 데이터” 를 사용한다. -아카이빙의 가장 큰 결점은 전부 다냐 아무것도 아니냐는 특성에 있다.아카이브 안의 내용에 접근하려면 전체 파일을 언아카이브해야 한다.변경사항을 저장하려면 전체 파일을 다시 쓰기 해야 한다.반면 코어 데이터(Core Data)는 저장된 객체의 일부만 가져올 수 있다.그리고 어떤 객체를 변경한다면 파일의 해당 부분만 갱신할 수 있다.이러한 점진적 가져오기, 업데이트, 삭제, 삽입은 파일시스템과 메모리 사이를 오가는 많은 모델 객체를 가지는 경우 앱의 급격한 성능 향상을 가져올 수 있다. -코어 데이터는 객체-관계형 매핑 ( object-relatio.. 2016. 3. 25.
[iOS Study] 저장, 읽기, 앱 상태 [iOS Study] 저장, 읽기, 앱 상태 출처 : 아론 힐리가스의 iOS 프로그래밍 -여기서는 iOS 에서 파일 시스템을 통해 읽고 쓰는 데 필요한 개념과 기법을 배운다. -아카이빙은 iOS 에서 모델 객체를 저장하는 가장 흔한 방법 중 하나이다.객체의 아카이빙은 그 객체의 프로퍼티들을 모두 기록하고 파일시스템에 그 내용을 저장하는 것을 포함한다.언아카이빙(unarchiving)은 아카이브한 데이터로부터 객체를 다시 만든다. -인스턴스들을 아카이브하고 언아카이브해야 할 클래스들은 NSCoding 프로토콜을 반드시 따라야 하며, 두 필수 메소드 encodeWithCoder: 와 initWithCoder: 를 구현해야 한다. -encodeWithCoder: 메시지를 받으면, 전달된 인자인 NSCoder .. 2016. 3. 7.
[android] 연락처 수정, 삭제에 대한 추가정보 [android] 연락처 수정, 삭제에 대한 추가정보 연락처 업데이트 =provider 를 통해 insert 를 제공하는 테이블은 raw_contacts 와 data 만. =Contacts 테이블은 view table 이다. = Contacts 테이블은 Auto aggregation 을 통해 자동으로 정리된다. = raw_contacts 의 내용이 contacts 에 aggregation 되는 조건은.. 이름이 같을 때 이름이 동일한 단어로 구성되어있지만 순서가 다를 때 전화번호나 이메일 혹은 닉네임을 공유할 때 연락처 삭제 = raw_contacts 를 삭제하면 종속된 data 는 자동으로 삭제가 된다. contacts 를 지우면 종속된 raw_contacts 를 자동으로 삭제한다. = Contacts.. 2015. 11. 16.
[PHP] 배열( array ) tutorial PHP Tutorial 배열 =====생성 $products = array ( 'Tires', 'Oil', 'Spark Plugs' );$numbers = range( 1, 10 );$odds = range( 1, 10, 2 );$letters = range( 'a', 'z' ); =====배열 element 추가 배열은 길이 상관없이 추가하는 것도 가능하고, 정의없이 사용하는 것도 가능하다. $products[4] = 'Fuses';$products2[0] = 'Good Tires'; =====foreach foreach( $products as $current ) 위와 같은 방식으로 foreach 를 쓰는 것이 general 하다. =====key-value array $prices = array( .. 2013. 11. 21.
[Java] 왜 InputStream 의 read() 는 byte 가 아닌 int 를 반환하는가? 자바, 왜 InputStream 의 read() 는 byte 가 아닌 int 를 반환하는가? byte 는 8bit 로 0~255 까지 표현할 수 있다. 그런데 InputStream 의 read() 를 통해 더 읽어들일 byte 가 없을 경우에는 -1 을 return 하여 더 이상 읽을 값이 없다는 것을 알려줘야 한다. 이 경우 byte 형으로 return 받을 경우 -1 을 포함시킬 수가 없다. 그래서 int 형태를 사용하게 되었다. 1, byte, InputStream, inputstream int return read, inputstream read, inputstream read byte, inputstream read byte return, inputstream read int, iNT, Java.. 2013. 8. 18.
반응형