프로그래밍 QnA

gura2013의 이미지

[자답]RTSP DESCRIBE Command 에서의 MD5 Response 생성 질문입니다. (Digest access authentication)

Axis 카메라로부터 스트리밍 데이터를 수신받는것이 구현목표입니다.

RTSP Command를 만들어 Request/Response 송수신중에
최초 OPTIONS을 주고받고 두번째로 DESCRIBE 를 보내고 받는데
카메라로부터 주고받은 Command는 아래와 같습니다.

>>RTSP DESCRIBE REQUEST<<
DESCRIBE rtsp://10.20.23.151:554/axis-media/media.amp RTSP/1.0
CSeq: 1
User-Agent: Axis AMC
Accept: application/sdp

kkb의 이미지

파일을 copy하거나 그대로 appending 해야 하는데 변수에 저장하지 않고 할 수는 없나요?

파일을 copy하거나 그대로 appending 해야 하는데 변수에 저장하지 않고 할 수는 없나요?

저는 일반적으로는
파일을 open이나 fopen으로 열어서
파일의 데이터를 변수에 복사한 다음,
그 변수를 새로운 파일에 쓰거나(복사) 기존의 파일에 그대로 붙여 넣는(appending) 작업을 합니다

이 때, 중간에 변수에 읽고 쓰지 않고
파일에서 파일로 바로 할 수는 없나요?
파일의 크기가 너무 커져서 변수 크기가 너무 커지기 때문입니다

하려는 작업은,

bsakiag의 이미지

EPOLL 이나 POLL에서 EVENT 검사할 때..뭐가 정확한건지

안녕하세요..
항상 궁금해 하던 것이었는데.. 이참 에 질문합니다.
poll()이나 epoll()을 사용할 경우, POLLIN 또는 EPOLLIN 등을 검사합니다.
이때,

1.
if(POLLIN & events) {
} else if(POLLERR & events) {
} else if(POLLHUP & events) {
}

위처럼 하는게 맞는 건지, 아니면

2.
if(POLLIN & events) {
}
if(POLLERR & events) {
}
if(POLLHUP & events) {
}

위처럼 하는게 맞는건지 항상 궁금했습니다.
저는 2번이 맞다고 보여집니다만, 리눅스/유닉스 관련서적에는 1번처럼 많이 쓰더라구요.

대부분의 경우, 1이나 2나 동일한 결과일것 같긴한데.. 논리적인면에서 어느표현이 맞는 것일까요?

thewarparty의 이미지

시그널 핸들러를 몇번 수행하다가 시스템이 죽습니다.ㅠ.ㅠ 고수님들 조언 부탁드립니다.

디바이스 드라이버에서 특정 프로세스에게 주기적인 signal을 보내려고 함니다.

근데 시그널 핸들러를 몇번 수행 하다가 시스템이 죽는 현상이 발생합니다. ㅠ

제가 초보라 무엇이 문제인지 잘 모르겠습니다 .

고수님들의 많은 조언 부탁드립니다 .

아래는 소스코드입니다.

/////////////////////////////// 디바이스 드라이버

lmk378의 이미지

arm계열 cpu에서 가상주소를 물리주소로 변환하는 모듈을 작성중입니다.

정확히 말하면 s3c2440 에서 동작하는 user program의 가상주소를 ioctl을 통해
작성한 모듈로 넘겨주면 모듈이 물리주소를 계산해서 다시 user program으로 넘겨주는 방식입니다.
x86에서는 작성했는데 arm에서는 메모리 변관과정이 x86과 완전 틀려 포팅이 안되더군요
작성시 궁금한 점이 몇가지 있어 질문드립니다.

1. virt_to_phys함수가 가상주소를 물리주소로 변환해준다던데 커널의 가상메모리를 말하는건가요?
user program은 program마다 가상주소가 동일하더라도 물리주소가 다르니 안될것 같아서 그렇습니다.

2. arm에도 pte_offset과 pgd_offset 같은 함수가 존재하던데 왜 존재하는지 모르겠습니다.
x86계열에서나 필요한 함수 아닌가요? x86상에서 작성한 모듈을 arm으로 돌리니 컴파일도 잘 되고
실행도 잘됩니다만 변환된 물리주소값이 0xCxxxxxxx 와 같은 식으로 나옵니다. 메모리 맵상
sdram은 0x30000000 ~ 0x40000000 까지 메핑이 되어있는데 말이죠.

storkegg의 이미지

g++, STL 사용하는 방법, 생초보라 알수가 없군요

운영체제: HP-UX ia64-hp-hpux11.31
gcc verion 4.2.3 설치함

STL을 사용하가 위해 아래와 같이 간단하게 테스트용을 만들었는데

설치된 위치는
/usr/local/bin/gcc
/usr/local/bin/g++

/usr/local/include/c++/4.2.3/vector
/usr/local/include/c++/4.2.3/string

// lib 라이브러리
/usr/local/lib/hpux64/
/usr/local/lib/hpux32
/usr/local/lib/gcc

gcc PATH 을 하면 아래 부분만 일시 적입니다.
export PATH="$PATH:/usr/local/bin"

[질문]
1.C++ 을 사용하려고 합니다. 한번에 설치경로를 PATH 설정하는 방법은 없을까요?
ex) vi .profile 여기다가 설정한다고 했는데, 모르겠습니다.

imposno의 이미지

hp-ux cc 컴파일러 링크 옵션 질문입니다.

안녕하세요. HP-UX cc 컴파일러의 링크 옵션 질문 드립니다.

OS : HP-UX ****** B.11.23 U ia64
CC : cc: HP aC++/ANSI C B3910B A.06.05

문제 상황
liba.a libb.a 각각의 아카이브에서 상호 참조를 하고 있을때 gcc 에서는 아래와 같이 라이브러리를 그룹핑 해주면 링크가 성공하는 것으로 알고 있습니다. 그런데 지금 사용하고 있는 시스템과 컴파일러는 hp-ux에 cc를 사용하고 있는데요. 1시간 가량 검색을 해보고 man page를 봐도 gcc와 비슷한 기능을 하는 옵션일 없는 것(제가 영어가 조금 아니 많이 부족해서 모르고 지나쳤을 수도 있습니다.) 같습니다.

-Xlinker --start-group -la -lb -Xlinker --end-group

혹시 알고 계시는 분은 알려주셨으면 좋겠습니다.

감사합니다.

thewarparty의 이미지

고수님들 부탁 드려요!! 디바이스 드라이버에서 force_sig()를 사용시 시스템이 죽는 현상 ㅠ.ㅠ

유저에서 시그널을 기다림

fd = open(name,O_RDWR|O_NDELAY);
i = signal(SIGUSR2, (void *)test_handler); //////////////////
printf("fd : %d\n", fd);

info.size = getpid();
printf(" pid %d \n", info.size);

ioctl(fd, IOCTLTEST_WRITE , &info.size);
printf( " signal ok %d\n", i);

pride4ever의 이미지

malloc, free 구현에 대해 질문 있습니다.

s3c2440에 OS 없이 펌웨어로 코딩을 하고 있습니다.
그런데 malloc, free가 아주 초간단 버전으로 스택처럼 동작 되도록 구현되어 있습니다.
아마도 MSTK2440 키트 안에 번들로 들어있던 C 라이브러리가 그렇게 되어 있는것 같습니다.

그런데 이게 속도는 아주 빠르지만 스택 구조라서 순서를 잘 맞춰주어야 합니다.
malloc을 A->B->C 이렇게 했으면 free는 C->B->A 이렇게 해야 한다는 거죠.
만약 순서가 다르면 메모리 주소가 뒤엉켜 버리니 심각한 문제가 생깁니다.

제가 짠 코드는 저렇게 하면 됩니다.
문제는 다른 라이브러리(JPEG 등등)은 그렇게 순서가 맞지 않다는거죠.
(뭐 당연한거죠 ㅠㅠ)
그러니 실행중에 아주 이상한 오동작을 합니다.
몇일동안 왜 그럴까 고민하다가 저놈들이 범인이란걸 알았습니다.

제가 저런 외부 라이브러리를 재구성할수 있을만큼 실력도 없고 시간도 없고 그렇습니다.(ㅠㅠ)
그래서 여기 포럼에 자문을 구해 봅니다.

polomeria의 이미지

프로그래밍 질문은 아닌데요 IGMP 프로토콜에 대해서

코드를 보다보니 IGMP proxy 와 snoop이라는 개념이 나오는데요

proxy의 개념에 대해서 잘 모르겠습니다.
또한 snoop과의 차이점은 무엇일까요?

도움을 부탁드립니다.^^

페이지

프로그래밍 QnA 구독하기