회사일2009. 6. 24. 09:47
우연히 제보 받게 된 사이트로,
소스코드와 DOS / 윈도우 바이너리를 배포중이다.
근데.. .net 기반인듯?



[링크 : http://www.pjdaniel.org.uk/mpeg/]

'회사일' 카테고리의 다른 글

MP@ML MP@HL  (0) 2009.09.29
리셋 타이밍은 지켜주세요!  (0) 2009.06.30
ASIX AX88xxx 드라이버 호환 USB 랜카드  (0) 2009.06.18
CBM - CuBic Meter  (0) 2009.06.16
SH4 linux 에서 SH가 뭥미?  (2) 2009.06.08
Posted by 구차니
Programming/C Win32 MFC2009. 6. 23. 18:33
CTime은 실질적으로 처음 사용하는 녀석인데.. 이름대로, Time/Date 관련 클래스이다.
사용방법은 매우 직관적으로
CTime::GetCurrentTime(); 를 사용하여 현재시간을 받아 온 후
GetYear() GetMonth() GetDay() GetHour() GetMinute() GetSecond()
메소드 들을 이용하여 시간 정보를 받아와서 사용하면 된다.



CFile 역시 실질적으로 처음 사용하는 녀석인데, 평소 습관대로 fopen()을 사용하려다
큰 마음먹고, MFC 답게 CFile 클래스로 처리해 보았다.


아무튼 플래그들은 다음과 같다.
	enum OpenFlags {
		modeRead =          0x0000,
		modeWrite =         0x0001,
		modeReadWrite =     0x0002,
		shareCompat =       0x0000,
		shareExclusive =    0x0010,
		shareDenyWrite =    0x0020,
		shareDenyRead =     0x0030,
		shareDenyNone =     0x0040,
		modeNoInherit =     0x0080,
		modeCreate =        0x1000,
		modeNoTruncate =    0x2000,
		typeText =          0x4000, // typeText and typeBinary are used in
		typeBinary =   (int)0x8000 // derived classes only
};

주로 쓰이는건, CFile::modeCreate와 CFile::modeWrite인데, fopen()과 비교하자면 "w" 에 속한다.
fopen()에서 사용하던 추가모드(Append)가 없어서 고심을 하다가, 아래의 사이트에서 발견하게 되었다.

outFile.Open("myFile.txt", CFile::modeNoTruncate | CFile::modeCreate | CFile::modeWrite); 
outFile.SeekToEnd(); 

[링크 : http://www.eggheadcafe.com/forumarchives/vcmfc/jun2005/post23419185.asp]

아무튼
CFile::modeWrite만 사용하면, Create가 되지 않아 파일이 없을 경우 에러가 발생한다.

CFile::modeCreate | CFile::modeWrite 를 사용하면, 덮어 써지는데 써진 내용이 이전에 쓰여진 내용보다 적으면
이전 내용이 남아 있는다. 비유를 하자면, 수정(Overlay)모드에서 가장 첫 줄 첫 칸부터 내용을 치는 것과 비슷하게 작동한다.
테스트 해봐야 하겠지만, 굳이 CFile::modeNoTruncate 를 사용하지 않더라도,
SeekToEnd()만 적용해도(Create/Write 사용) 충분하지 않을까 생각이 된다.


Posted by 구차니
악랄하신 무한님에게 점지당하여 바통을 넘겨 받게 된 구차니입니다. -ㅁ-!
무한님의 센스에 비하면 타우렌 2000mg 부족하니 많은 양해를 부탁드립니다

[출처 : 불명 + 이것저것 합성]
[부제 : 힘이여 솟아라! 타우렌 300mg 함유 비타500!!!]

(일단은)  구차니군은 전산학과를 졸업한 프로그래머다.
문제는 전산학과 + 프로그래머의 조합이라는 사실!
이건 마치 마린 + 메딕 조합에 버금가는 먼치킨으로 인식되는 게 현실이다.

아무튼 안구에 습기가 차게 되는 전산학과 공돌이의 생활로
"프로그램 언어들로 릴레이를 받으시지 않을까 싶은" 이라는 무한님의 기원을 담아 히위고~



[편견타파 릴레이]

1. 자신의 직종이나 전공때문에 주위에서 자주 듣게 되는 이야기를 써 주세요.
2. 다음 주자 3분께 바톤을 넘겨주세요.
3. 마감기한은 7월 31일까지 입니다.

흐음.. 다음 타자 세명이나 지목하는게 상당히 껄끄러운 -ㅁ-
변방의 블로거이다 보니.. 인맥이 없.. OTL!!!!

떠넘길 사람 세분은 버퍼링중 -ㅁ-

+_+!

1. Kay~ 님 :: 라라윈님의 블로그에 남기신 소망을 이루어 드리겠습니다 ㅋㅋ
2. okto 님 :: 떠넘기기 스킬 시전입니다!!!
3. bluenlive 님 :: okto 님을 지명하는데 웬지 빠져서는 안 될 느낌이 ㅋ

Posted by 구차니
Linux API/network2009. 6. 23. 00:50
fork()는 리눅스 시스템 콜로서, 프로세스를 생성한다.

#include "stdio.h"
#include "unistd.h"

int main() { pid_t pid; pid = fork();
switch( pid) { case -1: // fail case 0: // child default: // parent break; } }
개략적인 코드는 위와 같은데,
왜! switch 문데 child와 parent가 동시에 들어가는지에 대해서 생각을 해보도록 하자.

일단 fork() + exec() 의 조합으로 쓰게 되는데,
fork()는 프로세스를 생성하고, exec()는 프로그램을 바꾸어서 실행하는 역활을 한다.
다시 앞을 자세히 보자.

프로세스를 생성한다.

어려운 이야기를 제외하고, 프로세스는 메모리상에 올라와있는(적재되어 있는, 혹은 메모리에 load된)
프로그램으로, 프로세스를 생성하는 가장 편한 방법은 복사이다.
현재 수행중인 프로세스의 내용을 그대로 복사해서 다른 pid를 준다.
그게 바로 fork 이고, 위의 switch문을 이해할 수 있는 키가 된다.

굳이 비유를 하자면, 예전에 일요일에 했던 이휘재가 그래 결정했어! 를 외치던 그 프로그램을 떠올려 보자.
어느 시점에서 그대로 복제한 메모리의 정보가 생성이 되었고
그 분기점에서 어느길을 택할지를 결정하여 주면, 각각의 프로그램이 따로 돌아가게 된다.


즉, 복사한 시점에서 표지판 역활을 해주는 것이
fork()의 리턴값인 pid_t 형의 pid 이고,
이 값이 어느 쪽으로 분기되어 갈지를 결정하게 해주는 것이다.

그런 이유로, Parent, Child 의 코드가 하나의 소스에 들어 있게 되고
별거 아닌 것 같지만, 상당히 헷갈리는(왜 코드가 하나에 들어 있지?) 이유가 된다.

[링크 : http://linux.die.net/man/2/fork]

'Linux API > network' 카테고리의 다른 글

Linux File Descriptor / File pointer  (0) 2009.06.30
getline()  (0) 2009.06.25
signal / kill / raise  (0) 2009.06.21
flock - apply or remove an advisory lock on an open file  (0) 2009.06.20
네트워크 장치 갯수 얻기 (get amount of eth?)  (0) 2009.06.18
Posted by 구차니
바코드 리더 관련 정보는 정말 눈 씻고 뒤져봐도 안나온다.
이유는 간단하다.

바코드 리더 = 특화된 키보드

메뉴얼을 읽어 보면
prefix / suffix가 존재하고, 이에 따라서 처리방법이 조금씩 달라지지만,
PS/2 방식의 바코드 리더의 경우에는 실질적으로 키보드와 다를바가 전혀없다.
그렇게 때문에, 바코드 리더 프로그래밍이란 것은 실질적으로 존재하지 않는 것이다.


prefix - 접두어(잘 쓰이는지는 모르겠지만, STX 가 있는것 봐서는 RS-232 시리얼 통신 표준을 맞추는데 사용하는 것 같다)
suffix - 접미어 (예를 들어 엔터 몇번이냐, 엔터를 어떤걸로 - CR/LF - 처리하냐 정도의 차이)


[링크 : http://www.iepos.com/support/symbol/ls1004userprogrammermanual.pdf]

'모종의 음모 > 바코드 리더' 카테고리의 다른 글

MFC 에서 바코드리더 메시지, 버츄얼 키  (0) 2009.06.17
바코드 폰트 (code 39)  (0) 2009.06.15
barcode reader - PS/2 type  (2) 2009.06.12
Posted by 구차니
Programming/C Win32 MFC2009. 6. 22. 15:57

int nCount = m_var1.GetCount();
if (nCount > 0)
 m_var1.SetCurSel(nCount - 1);

간단하게 구현되는데, 깔끔하지는 않다.
(무조건 마지막꺼를 선택하게 해서 강제로 스크롤 되기 때문에, 중앙에 놔두었을때 멈춰있지 못하다)

[링크 : http://social.msdn.microsoft.com/forums/en-US/vssmartdevicesnative/thread/9e54372f-c784-4c8f-ab4c-adc6bbe8810a]

'Programming > C Win32 MFC' 카테고리의 다른 글

CTreeCtrl - 트리구조로 데이터 넣어주기  (0) 2009.07.13
CFile / CTime  (0) 2009.06.23
MFC PreTranslateMessage() 리턴값의 의미  (0) 2009.06.17
signed type의 %X 출력  (0) 2009.06.17
CEdit Multiline사용시 개행 방법  (0) 2009.06.17
Posted by 구차니
프로그램 사용2009. 6. 22. 14:12
ZOC Terminal은 Shareware이다(탈락!!!)


[링크 : http://www.fileguru.com/ZOC-Terminal/info]



은근히 Freeware로 탭 지원되는 터미널 에뮬레이터가 없다는 사실에 놀랐다 -ㅁ-
음... CSerial도 여러개의 인스턴스를 사용할 수 있다면 간단하게 구현이 가능할텐데..
한번 공부할 겸 시간내서 만들어 볼까나?
Posted by 구차니
Linux API/network2009. 6. 21. 13:04
signal - ANSI C signal handling
kill - send signal to a process
raise - send a signal to the current process

signal()은 시그널 핸들러를 등록하고
 #include <signal.h>
 sighandler_t signal(int signum, sighandler_t handler);

kill은 시그널 을 전송하고
 #include <sys/types.h>
 #include <signal.h>
 int kill(pid_t pid, int sig);

raise는 자기자신에게 시그널을 전송한다.
 #include <signal.h>
 int raise(int sig);
 kill(getpid(), sig);

아무래도, pid 단위로 시그널을 전송함으로서 제어에 상당한 제약이 있을것으로 보인다.
그리고 쓰레드는 2.5 커널 이상 부터는 pid가 동일하게 나온다고 한다.
[링크 : http://kldp.org/node/35609]

*** man page ***
[signal(2) : http://linux.die.net/man/2/signal]
[kill(2) : http://linux.die.net/man/2/kill]
[raise(2) : http://linux.die.net/man/3/raise]

*** joinc wiki ***
시그널 처리하기
시그널 사용하기 1
시그널 사용하기 2
리눅스 시스템 프로그래밍 6장 시그널

'Linux API > network' 카테고리의 다른 글

getline()  (0) 2009.06.25
fork에 관한 짧은 이야기  (2) 2009.06.23
flock - apply or remove an advisory lock on an open file  (0) 2009.06.20
네트워크 장치 갯수 얻기 (get amount of eth?)  (0) 2009.06.18
gateway 정보  (0) 2009.06.05
Posted by 구차니
Linux API/network2009. 6. 20. 18:55
flock은 이름대로 파일 디스크립터를 lock 하거나 unlock 하는데 사용한다.
멀티 유저/ 멀티 프로세스 OS인 관계로 Linux/Unix에서는 열린 파일도 여러사람이 또 열어서 쓸 수 있는데
다르게 말하자면 시리얼 포트 역시 동시에 여러사람이 열어서 사용이 가능하다는 의미이다.

하지만, 시리얼 포트를 동시에 여러 사람이 열어서 사용하다 보면 문제가 발생할 수도 있기에
(내용이 서로 엇갈린다던가) 특정 시기에 대해서는 타인이 사용하지 못하도록 배타적으로 잠궈야 할 때도 있다.

int flock(int fd, int operation);

    LOCK_SH
        Place a shared lock. More than one process may hold a shared lock for a given file at a given time.

    LOCK_EX
        Place an exclusive lock. Only one process may hold an exclusive lock for a given file at a given time.

    LOCK_UN
        Remove an existing lock held by this process.

[링크 : http://linux.die.net/man/2/flock]

LOCK_EX로 하면 자기만 쓸 수 있도록 잠그는 것이고,
LOCK_UN으로 잠금을 해제 한다.



[링크 : http://feedtome.springnote.com/pages/141729]
[링크 : http://stackoverflow.com/questions/691676/getting-exclusive-access-to-a-tty-device-from-a-root-program-on-linux]

'Linux API > network' 카테고리의 다른 글

fork에 관한 짧은 이야기  (2) 2009.06.23
signal / kill / raise  (0) 2009.06.21
네트워크 장치 갯수 얻기 (get amount of eth?)  (0) 2009.06.18
gateway 정보  (0) 2009.06.05
linux에서 ip/mac address 받아오기 관련 링크  (0) 2009.06.05
Posted by 구차니
개소리 왈왈2009. 6. 20. 10:13
쉬고싶다.
쉬고싶다.
쉬고싶다.
쉬고싶다.
쉬고싶다.
쉬고싶다.
쉬고싶다.
쉬고싶다.
쉬고싶다.
쉬고싶다.
쉬고싶다.
쉬고싶다.
쉬고싶다.
쉬고싶다.
쉬고싶다.
쉬고싶다.
쉬고싶다.
쉬고싶다.
쉬고싶다.
쉬고싶다.
쉬고싶다.
쉬고싶다.
쉬고싶다.
쉬고싶다.
쉬고싶다.
쉬고싶다.
쉬고싶다.
쉬고싶다.
쉬고싶다.
쉬고싶다.
쉬고싶다.
쉬고싶다.
쉬고싶다.
쉬고싶다.
쉬고싶다.
쉬고싶다.
쉬고싶다.
쉬고싶다.
쉬고싶다.
쉬고싶다.
쉬고싶다.
쉬고싶다.
쉬고싶다.
쉬고싶다.
쉬고싶다.
쉬고싶다.
쉬고싶다.
쉬고싶다.
쉬고싶다.
쉬고싶다.
쉬고싶다.
쉬고싶다.
쉬고싶다.
쉬고싶다.
쉬고싶다.
쉬고싶다.
쉬고싶다.
쉬고싶다.
쉬고싶다.
쉬고싶다.





출근하기 싫어서 이러는거 절대아님 -ㅁ-!

문득, 내가 잘 하는게 머가 있나?
내가 좀 한다고 생각했던것들이 무슨 의미가 있나? 라는 생각이 든다.

막상 이력서 던져놔봐도 떡밥을 물어 보는 곳도 없고..
개발자라는 굴레에서 다른 영역으로 이전시에는 경력은 사라지고 신입으로 가야 하는 현실
그리고 실력은 시간이 지나면 빛을 본다지만,
그렇다고 게임에서 레벨업을 하듯 띠링~ 이펙트와 함께 월급도 상승하는 것도 아니고
결국은 입사시에 월급일테고..

너무 비관적인가?

비관을 넘어서 이제 허무주의로 치닫고 있는 내 정신상태에
이러한 퇴행을 막아줄 정신의 못이 필요할 듯 한데...

휴식이 되어줄지
아니면 대학원이 되어줄지
그것도 아니라면 이직/전직이 되어줄지...


문득 반문명주의가 되는건 아닐까 라는 생각조차 든다.
인류가 세워왔다는 문명과 과학 기술들이 과연 얼마나 의미가 있는 것일까?
내가 무언가를 할 줄 안다는 건 어떤 의미가 있을까?

이러다가 머리 밀고 도 갂으러 가는건 아닐런지...
Posted by 구차니