본문 바로가기

분류 전체보기

[리눅스] errno 리스트 http://whitepaper82.cafe24.com/xe/IT/293 errno: 0 message: Successerrno: 1 message: Operation not permittederrno: 2 message: No such file or directoryerrno: 3 message: No such processerrno: 4 message: Interrupted system callerrno: 5 message: Input/output errorerrno: 6 message: No such device or addresserrno: 7 message: Argument list too longerrno: 8 message: Exec format errorerrno: 9 message: Ba.. 더보기
[리눅스] 파일 IO 관련 함수들 ■ fgetpos 파일 스트림에서 현재 위치를 구한다■ fsetpos 파일 스트림에서 현재 위치를 설정한다■ ftell 스트림에서 현재 파일 오프셋을 반환한다■ rewind 스트림에서 파일 위치를 재설정한다■ setvbuf 스트림을 위한 버퍼링 구성을 설정한다■ remove path 파라미터가 디렉토릭 아니라면 unlink와 같고, 디렉토리이면 rmdir과 같다■ freopen() - 스트림을 다른 파일이나 방식(mode)로 다시 연다 - 참고 링크 : http://itguru.tistory.com/59#include #include int main(int argc, char *argv[]){ char *filename; if(argc != 2) { fprintf(stderr, "usage: useupp.. 더보기
[리눅스] 프로세스 - fork, waitpid, wait ■ 참고 링크 기본 상세 설명 : http://forum.falinux.com/zbxe/?mid=c_reference&search_target=title_content&search_keyword=fork&document_srl=406918 요약 : http://mintnlatte.tistory.com/21 더보기
[네트워크] 동적구조체 전달 방법 (가번구조체 추가) ■ 가변구조체 참고 링크- http://blog.naver.com/PostView.nhn?blogId=sdi760210&logNo=70084541983&parentCategoryNo=63&viewDate=&currentPage=1&listtype=0 - http://spanthoma.egloos.com/1511185 ■ 방법1. 배열 길이를 선언하고 기록한 데이터 크기만 전송하기 struct MyData { int data_size; int data1; int data2; char string_data[5000]; }; char *p_string = "abcdefg";MyData send_data; send_data.data_size = sizeof(int)*2 + strlen(p_string)+1; s.. 더보기
[리눅스] 세그멘테이션 오류를 발생시키는 것들 fseek, ftell 등 FILE *를 사용하는 함수에서 세그멘테이션 오류가 발생하는 경우 - 중복으로 fopen을 하는 경우 발생 할 수 있다 - fclose()를 하지않고 다시 fopen을 한다면, 오류가 발생할 확률이 높다 - 이런 잠재적인 위험을 피하려면, open과 close를 정확히 해주자! 더보기
[리눅스] 커널 에러 1. 메모리 카드 불량시 오류 - 메모리 카드가 불량일 때 커널에서 아래와 같은 메시지가 출력 될 수 있다. - 특히, reason 20번일 경우 그런것 같다 - 메모리 카드를 탈부착/청소를 하면 해결이 되었다. anystor85 kernel: Uhhuh. NMI received for unknown reason 30 on CPU 0.anystor85 kernel: Do you have a strange power saving mode enabled?anystor85 kernel: Dazed and confused, but trying to continue anystor85 kernel: Uhhuh. NMI received for unknown reason 20 on CPU 0.anystor85 kern.. 더보기
[리눅스] Inotify : 커널 이벤트 모니터 inotify 메뉴얼 - http://wariua.springnote.com/pages/6796853?print=1 Inotify watch 개수 설정 - http://support.crashplanpro.com/doku.php/recipe/increase_inotify_watches Inotify를 이용한 Linux 파일 시스템 모니터 - IBM - http://www.ibm.com/developerworks/kr/library/l-inotify/ ■ Inotify watch 개수 확장 코드 - system("sysctl -w fs.inotify.max_user_watches=99999999 >&2 2>/dev/null" ■ CREATE FILE/DIRECTORY EVENT missing 해결하기 임시.. 더보기
웹(http)관련 유저 동시접속 테스트 툴 * JMeterhttp://www.mins01.com/web_work/doc/jmeter/jmeter.html 더보기
리눅스 메모리 버퍼 / 스트림 FILE *fopencookie(void *cookie, const char *mode, cookie_io_functions_t io_funcs); http://linux.die.net/man/3/fopencookie 더보기
IPC 자료 조사 * 세마포어, 공유메모리, 메시지큐 설명/예시http://blog.naver.com/PostView.nhn?blogId=kiros33&logNo=130142857679 * 공유메모리 상세http://www.ibm.com/developerworks/kr/aix/library/au-spunix_sharedmemory/index.html 더보기
ObjectAnimator ValueAnimator AnimatorSet 사용하여 동적 높이 증가와 내려오는 에니메이션 구현 AnimatorSet set = new AnimatorSet(); final int height = holder.deleteConfirmLayout.getMeasuredHeight(); ValueAnimator anim = ValueAnimator.ofInt(0, holder.deleteConfirmLayout.getMeasuredHeight()); anim.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() { @Override public void onAnimationUpdate(ValueAnimator valueAnimator) { int val = (Integer) valueAnimator.getAnimatedValue(); //레이아웃 파.. 더보기
안드로이드 ImageView scaleType 정리 자료 FIT_CENTER- ImageView에서 벗어나는 쪽을 맞추어 비율을 줄인다- 가로가 크다면 넓이를 ImageView에 맞추고 그 비율만큼 높이를 줄인다*큰이미지- ImageView만큼 비율에 맞게 줄인다- height 또는 minHeight를 기준으로 가로를 줄인다*작은 이미지- ImageView만큼 비율에 맞게 맞춘다 CENTER_INSIDE- ImageView에서 벗어나는 쪽을 맞추어 비율을 줄인다*큰 이미지- 벗어나는 쪽에 맞추어 비율을 줄인다*작은 이미지- 늘리지 않는다. 원본 그대로 CENTER_CROP- ImageView에 여백이 있는 쪽을 비율에 맞게 늘리고 이미지의 중앙을 표현*큰이미지- ImageView에 맞게 줄어들고 이미지 중앙 표현*작은 이미지- 여백이 있는 부분을 비율에 맞게 .. 더보기
안드로이드 타이머 구현 자료 카운트 타이머http://www.codeproject.com/Articles/1093931/Custom-Countdown-Timer-in-Java-Android 더보기
안드로이드 크롭 구현 자료 https://github.com/IsseiAoki/SimpleCropViewhttps://github.com/ArthurHub/Android-Image-Cropper https://github.com/Yalantis/uCrop https://github.com/jdamcd/android-crop *fix picture, zoomhttps://github.com/lyft/scissors-squrehttps://github.com/adamstyrc/cookie-cutter-circle&squrehttps://github.com/jayrambhia/CropperNoCropper-squrehttps://github.com/albinmathew/PhotoCrop - circle 더보기
안드로이드 갤러리 구현 자료 갤러리 이미지, 동영상, 다중선택https://github.com/yazeed44/MultiImagePickerhttps://github.com/SimpleMobileTools/Simple-Gallery 이미지 다중선택https://github.com/darsh2/MultipleImageSelect https://github.com/zfdang/android-multiple-images-selector 더보기
안드로이드 자식뷰 강제 높이 구하기 private int getChildHeight(ViewGroup parentView) { final int measureSpecW = View.MeasureSpec.makeMeasureSpec(parentView.getWidth(), View.MeasureSpec.EXACTLY); final int measureSpecH = View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED); int totalHeight = 0; for (int i = 0; i < parentView.getChildCount(); i++) { View childView = parentView.getChildAt(i); ViewGroup.LayoutParams p = (.. 더보기
annotation 어노테이션 @IntDef @StringDef- enum은 객체이기 때문에 메모리를 상수보다 많이 할당된다- 컴파일 시점에 변수 체크가 가능하다- enum은 .class 파일에서 문자열들이 생성되면서 문자열수 만큼 바이트가 커진다 int는 4바이트만 필요하기때문에 APK 용량을 줄일 수 있다 더보기
카카오 로그인에서 hash 구하기 public static String getKeyHash(final Context context) { PackageInfo packageInfo = getPackageInfo(context, PackageManager.GET_SIGNATURES); if (packageInfo == null) return null; for (Signature signature : packageInfo.signatures) { try { MessageDigest md = MessageDigest.getInstance("SHA"); md.update(signature.toByteArray()); return android.util.Base64.encodeToString(md.digest(), android.util.Base6.. 더보기
canvas 프로그래스 이미지를 중점으로 테두리에 프로그래스 그리기https://github.com/aliab/circular-music-progressbar 프로그래스 그리기http://stackoverflow.com/questions/21333866/how-to-create-a-circular-progressbar-in-android-which-rotates-on-it https://github.com/Todd-Davies/ProgressWheel https://github.com/lopspower/CircularProgressBar 더보기
ChildeFragment에서 exit animation시 바로 없어지는 현상 처리 http://stackoverflow.com/questions/14900738/nested-fragments-disappear-during-transition-animation 더보기
앱 히스토리목록에서 앱을 실행시켰는지 유무 if ((getIntent().getFlags() & Intent.FLAG_ACTIVITY_LAUNCHED_FROM_HISTORY) != 0) { return; } 히스토리에서 실행된경우 true 더보기
핸들러(handler) 메모리 누수를 WeakReference 사용 이유 및 해결 방법 *번역 및 정리 글http://yoonhada.com/wp/?p=795 *원문Consider the following code:public class SampleActivity extends Activity { private final Handler mLeakyHandler = new Handler() { @Override public void handleMessage(Message msg) { // ... } }; } While not readily obvious, this code can cause cause a massive memory leak. Android Lint will give the following warning:In Android, Handler classes should be st.. 더보기
rxjava 개념잡기 UI 외의 처리는 쓰레드에서 실행되고실행이 완료된 이벤트를 받아 UI를 갱신하기때문에rxjava가 UI반응속도가 빠를수있다쓰레드를 만들기위한 추가적인 처리가 필요없다UI와 분리되어 테스트를 용이하게 개발할수 있다 *셈플rxjava-essentials 예제코드 : * rxjava 링크- https://realm.io/kr/news/kau-felipe-lima-adopting-rxjava-airbnb-android/- https://realm.io/news/kau-felipe-lima-adopting-rxjava-airbnb-android/?utm_source=Android+Weekly&utm_campaign=c1ffc42de6-Android_Weekly_198&utm_medium=email&utm_term.. 더보기
Glide 사용하기 * glide 이미지캐시 및 썸네일 사용하기https://futurestud.io/tutorials/glide-network-dependent-image-loading * gradle 속도 향상https://developer.android.com/studio/run/index.html?hl=ko https://www.liaohuqiu.net/posts/speed-up-your-build/ 더보기
MVP 패턴 개념잡기 MVP MVP is a user interface architectural pattern engineered to facilitate automated unit testing and improve the separation of concerns in presentation logic *자료http://javacan.tistory.com/entry/MVP-%ED%8C%A8%ED%84%B4-%EC%86%8C%EA%B0%9C 더보기
[이클립스] make 설정 property -> c/c++ build 에서 Build directory 설정 더보기
쓰레드 관련 모음 * 쓰레드 강의 http://teamblog.joinc.co.kr/yundream/251 더보기
프로토콜 설계 http://blog.naver.com/PostView.nhn?blogId=mankeys&logNo=140268382 더보기
[네트워크] 가변 구조체 전송 struct MyData { int data_size; int data1; int data2; char string_data[5000]; }; char *p_string = "abcdefg"; MyData send_data; send_data.data_size = sizeof(int)*2 + strlen(p_string)+1; strcpy(send_data.string_data, p_string); p_socket->send(&send_data, sizeof(int)*3 + strlen(p_string) + 1); 팁 => 가변 데이터는 size 변수 뒤로 보낸다 설명 => 구조체는 정적이지만, 전송루틴을 동적으로 생성하여 전송 읽기 => 처음 4바이트를 먼저 읽어 뒤의 데이터 크기를 읽어서 나머지 데이.. 더보기
How GDB * How GDB http://www.oneone.kr/?document_srl=5579 *Optimized Out Error # 2: str = 라고 나오면 gcc 컴파일 옵션 -O0으로 변경해서 다시 시작해본다. 더보기