음.....프로그램이 이상하게 아무 이유없이 자꾸 죽어서 왜 그런지 이유를 찾다가 우연히 Too many open files 라는 메시지를 보게 되었습니다.
아...너무 많은 파일들이 열려있다고 하는군요.
한 프로세스가 열 수 있는 파일의 수는 제한되어 있더군요.

ulimit -a 하면
통지(설명자) 256

이라고 나오는데요(영문판에서는 nofiles(descriptors) 이라고 나오더군요)

그 제한수만큼 fopen을 한다던지 소켓을 생성한다든지 해버리고 안 닫아버리면(close나 fclose) 계속 프로세스가 열고 있는 거더군요. 그래서 이거를 안 닫아주면 계속 생깁니다.
그 프로세스가 열고 있는 파일들을 보기 위해서는 이렇게 하면 됩니다.
우선 lsof프로그램을 설치해야합니다. 솔라리스에는 없어서 설치했어요-_-;
이 프로그램이 현재 열고 있는 파일이나 소켓 등을 찾아줍니다.

lsof -p 프로세스ID

하면 목록이 나오는데 그중에 안 닫고 있는게 있으면 그걸 소스에 찾아서 fclose나 close해줍니다.
 
Posted by 머드초보
,
 

진짜.....어이가 없네요. 저는 MD5가 뭔지 찾으려고 했는데^^

플리커(Flickr)의 오픈API를 뒤지다가 인증부분이 필요해서 삽질하고 있던중에 MD5합계를 사용합니다 라는 말이있어서 MD5합계를 사용해서 api_sig값을 만들어내는데 이게 대체 뭔소린지 몰라서 MD5를 쳐 봤습니다.

이게 왠걸 마법의 MD5라는 것이 나옵니다-_-;
http://www.newspace21.com/mix/btl_kr.php

성명을 입력하면 값이 나오는데 그걸로 싸우고 있습니다-_-; 참 기발하군요-_-;
하지만 결국 MD5가 뭔지는 못 찾았습니다 OTL-_-;

사용자 삽입 이미지

음...제 이름은 강한데 닉네임은 완전 약하군요-_-;

MD5 최강이 요놈인 것 같군요.
A#v[3i
모든 스탯이 100이네요. HP는 풀피는 아니네요-_-;

사용자 삽입 이미지

오.....-_-; 피는 내가 더 많다-_-;


아놔 MD5 찾아야 하는데-_-;

 
Posted by 머드초보
,
 

음 제가 제일 좋아하는 게임인 리듬히어로를 돌렸는데 버전이 2.5b에서 2.5c로 바뀌면서 이거 3D그래픽이 흐리게 나오던 것이 이제 제대로 나오네요 ^^

이것만 고쳐진 것도 대단하네요 ^^

그리고 제가 플레이한 것 동영상으로 찍어봤는데 컴사양이 후져서 캡쳐같이 하니까 약간 버벅이네요.
게다가 10프레임으로 캡쳐를 해버렸어요-_-; 다시 캡쳐하기 귀찮아서--;

컴사양은 2년전에 산 똥컴입니다.
cpu는 3.0GHz, 램은 1G고, 그래픽카드는 geforce 6600입니다.

동영상을 보시면 매우 끊기는 것 같지만, 실제론 안 끊겨요. 부드럽게 잘 돼요.
캡쳐를 같이 해서 저렇게 보이는 겁니다-_-; 플레이시에는 할만해요. 그러니까 박자치인 제가 저렇게 잘찍죠-_-;

마우스로 돌리는 건 왜이렇게 힘들죠?-_-; 마지막에 꼭 돌려주는데 힘들어요 ^^
곡은 모두들 잘알고 있는 YMCA입니다-_-;

 
Posted by 머드초보
,
 

아.....자꾸 까먹어요. 포인터에 대한 개념이 점점 사라지고 있는 느낌이네요-_-;

얼마전 동적할당을 할 일이 생겨서 포스팅해둡니다.










[code]#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#define NUM 2 /*  동적으로 할당할 수 */
#define LENGTH 80 /*  문자열길이 */

int main(void) {
 char **id;
 int i;
 
 id = (char **)malloc(NUM * sizeof(char *));
 for (i = 0; i < 2; i++) {
  id[i] = (char *)malloc(LENGTH * sizeof(char));
 }
 strcpy(id[0], "mudchobo");
 strcpy(id[1], "idoori");
 
 for (i = 0; i < 2; i++) {
  printf("%s\n", id[i]);
 }
 
 return EXIT_SUCCESS;
}
[/code]
아.....저렇게 하는 거군요-_-;

 
Posted by 머드초보
,
 

이 ArrayCollection 참 이상하네요-_-;
참 다루기 힘드네요. ^^









우선 http://localhost:8080/list.jsp 하면 아래와 같은 형태를 출력한다고 칩시다.

[code]<?xml version="1.0" encoding="UTF-8"?>
<result_set>
 <record>
  <id>mudchobo</id>
  <username>성종천</username>
 </record>
 <record>
  <id>idoori</id>
  <username>임두리</username>
 </record>
</result_set>
[/code]
잘 보시면 result_set태그안에 record태그가 2개가 있네요.
요 데이터를 가져와서 ArrayCollection에 저장하고 싶습니다.
그러면 이렇게 하면 됩니다. HTTPService의 result속성이 resultHandler라고 칩시다.
[code]public var recordAC:ArrayCollection;

public function resultHandler(event:ResultEvent):void {
 recordAC = (event.result.result_set.record is ArrayCollection) ?
     event.result.result_set.record as ArrayCollection :
     new ArrayCollection(ArrayUtil.toArray(event.result.result_set.record));
}
[/code]
저렇게 하는 이유는....만약 record가 1개라고 칩시다.
그러면 event.result.result_set.record as ArrayCollection 해버리면 recordAC변수에 null이 들어갑니다.
Array로 인식안하고 하나의 객체로 인정해서 ArrayCollection으로 변환을 못하는 것 같습니다-_-;
사실 왜그런지 정확한 이유는 모르겠군요. 디버그를 해보니까 record가 2개면 record에 [0], [1] 이렇게 나뉘는데 record가 1개면 [0], [1]이런거 없고 바로 id, username 이렇게 나오더군요. 배열로 생각안하고 그냥 객체로 생각해서 저런 것 같습니다-_-;

그래서 저렇게 변환이 가능한지 물어보면 되고, 1개의 record가 있으면 변환이 불가능하기 때문에
ArrayUtil.toArray를 쓰면 됩니다.

그리고 저렇게 해줘야하는 이유가 그냥 ArrayUtil.toArray로 받아오면 나중에 해당 객체를 가져올 때 이상해지더라구요-_-; recordAC.getItemAt(0); 해서 0번째 Object를 가져오면 Object를 열어보면 [0][1] 이 있어서 배열이 들어가 있어요. 그래서 배열로 된 건 ArrayUtil.toArray로 가져오면 안되더라구요 ^^

저렇게 as ArrayCollection으로 가져오면 var obj:Object = recordAC.getItemAt(0); 한다음에
obj.name 하면 name속성에 접근할 수 있어요^^

 
Posted by 머드초보
,