프로그래밍 QnA

endmyion의 이미지

[완료]C++로 파일 내 특정문자 뒤 데이터 읽어오기

안녕하세요

test.txt란 파일에 TAP로 분리하여 아래와같이 넣었습니다.

kpgain 15.4
kigain 100
table 1 10 2 5 6 8

그리고 이 파일을 열어서 각각의 데이터 가지고 오고 싶습니다.

아래 소스처럼 하면 가지고 올 수 있으나

문제는 만약 위의 텍스트 파일 내에 순서가 바뀌면 엉뚱한 값을 가지고 오게 됩니다.

따라서 위에 앞의 문자를 체크하고 뒤의 데이터를 가지고 오고 싶습니다.

가능할까요?

또 table 이란 데이터 뒤에 N개의 대이터를 가지고 올려면 어떻게 하는지도 알려주셨습니다.

익명 사용자의 이미지

업데이트 서버를 만들 때 파일 전송은 어떻게 이뤄 지나요?

서버 신입이라 모르는게 많은데요.
그냥 책보고 IOCP 서버 만들어서 클라이언트랑 데이터 주고받고 하는 정도...
일단 게임 서버는 어찌어찌 만들어서 클라이언트와 붙어서 돌아가는데

이번에는 업데이트 서버를 만들라더군요.
이리저리 검색해봤는데 필요한 내용은 잘 나오지도 않고 궁금한점만 많아지는것 같네요...모르는게 많다보니..

그중에서 파일 전송 부분을 잘 몰라서 그러는데요.
서버에서 클라이언트에 파일을 어떻게 보내는건가요?

TCP로 파일을 전송하는 소스를 보기는 했는데 그건 아닌것 같고요...
서버가 파일명을 보내고 파일을 열어서 그 내용을 보내면 클라이언트는 파일을 만들어서 그 내용을 저장하는 방식...;;

'FTP나 HTTP를 사용하라'고 하던데 이게 어떤 의미인지를 잘 모르겠거든요.
이런 방식을 사용할 때 서버의 역할과 클라이언트의 역할은 어떤것이고, 클라이언트가 어떻게 파일을 받게 되는지
좀 알려주세요...
전혀 모르겠습니다...ㅠㅠ

nicessj0919의 이미지

[완료]vfork() 문제 - 스택프레임 손실?

#include <stdio.h>
#include <sys/types.h>
static void f1(void), f2(void);
 
int main(void)
{
	f1();
	f2();
	_exit(0);
}
 
static void f1(void)
{
	pid_t pid;
	if((pid = vfork()) < 0)
 
		printf("vfork error");
}
 
static void f2(void)
{
	char buf[1000];
	int i;
	for(i = 0; i < sizeof(buf); i++)
		buf[i] = 0;
}

시험 문제인데요.
스택 프레임에 대한 정보 손실로 인해 segmentation fault가 발생한다고 합니다.
gdb를 해서 백트레이스를 하는데 No stack이라고 뜨네요.
도대체 뭐가 문제인지 모르겠습니다.

erikanes의 이미지

[완료] 모듈화에 대한 질문

아직 모듈화에 대해서 개념이 제대로 잡히지 않아서 많이헷갈리네요.

현재 SDL을 공부중인데 처음부터 끝까지 작업을 다해놓고 모듈화작업을 하면 더어렵다는것을 알기에

처음부터 클래스별로 나누어가면서 작성중이지만.. 모듈화를 해본 경험도 전무하다 시피하다보니 많이헷갈리네요..

작년 여름방학때 나름대로 모듈화랍시고 게임을 만들기는 했지만 죄~다 extern을 사용한 기억이 있네요.

그당시에는 c++을 모르고있던터라 하나의 헤더안에 온갖변수와 온갖함수, 헤더파일을 집어넣고 소스파일마다 그 헤더파일을 불러왔었지요

좋은 방법이 아닌걸 알기에 갈아엎고 차근차근 하고싶은데 많이어렵네요.

모듈화에 대한 간단한 팁같은것들이 있으면 공유해주셨으면 합니다^^;

nekoko의 이미지

RTP 패킷 수신할 때..

ip 카메라로부터 보드로 RTP 패킷을 수신하려 합니다
rtsp를 통해 ip 카메라에게 보드 ip로 패킷을 보내게 하는 것은 성공했는데요

이 패킷을 보드에 있는 RTP 수신 루틴에서 받으려고 하는데 잘 안되네요..
보니까 RTP 수신때 다시 connect를 하는 것 같은데요
이더넷을 통해 들어오는 패킷을 포트 번호만 지정해서 수신하면 되는게 아닌가요..?
RTP에 대해 더 알아봐야 하는 건지..
조언 부탁드립니다.

lmk378의 이미지

pgd_offset이 약간 이상하여 질문드립니다.

다음은 pgd_offset 메크로 입니다.

// arch/arm/include/asm/pgtable.h

110 #define PGDIR_SHIFT 21
...
376 #define pgd_index(addr) ((addr) >> PGDIR_SHIFT)
377
378 #define pgd_offset(mm, addr) ((mm)->pgd+pgd_index(addr))

즉 가상주소를 21만큼 right shift시켜 mm->pgd에 더해주는 작업을 하는 메크로 입니다.
헌데 실제 동작하는 것을 보면 다음과 같습니다.(제가 테스트용으로 만든 module의 출력메시지 입니다.)

// pgd_module.c
62 pgd = pgd_offset(current->mm, vaddr);

//실행
vaddr : be8917d0
[ 500.842212] mm->pgd : 0xecc48000
[ 500.845354] pgd : 0xecc4afa0

fat81의 이미지

2개의 네트워크 인터페이스 사용시, 데이터 전송 제어가 가능한가요?

안녕하세요.

네트워크에 관심이 많은 학생입니다.

질문 드릴 내용은 2 개의 네트워크 인터페이스가 있다고 했을 때, application 에서 각각의 인터페이스로 데이터 전송을 할 수 있느냐는 것입니다.

예를 들어 2개의 네트워크 인터페이스 (eth0, eth1) 가 있다고 합니다.

eth0 은 A 라는 네트워크 망에 물려 있고, eth1 은 B 라는 네트워크 망에 물려 있습니다.

물론 각각 인터페이스는 IP 주소, gateway, dns 주소도 다릅니다.

이런 상태에서 socket api 를 사용하는 application 이 있습니다. 이 app 는 A 라는 망에 물려있는 특정 호스트와 통신을 해야 합니다.

이런 상황에서 강제로 특정 네트워크 인터페이스로 통신을 할 수 있게끔 하는 방법이 있을런지요?

짧은 지식으로 방안을 생각해보았으나, 답을 찾기 어려워 질문을 올립니다.

감사합니다.

bbyongi의 이미지

[완료] char devices를 동적으로 찾아서 mknod 추가하는 방법?

안드로이드 커널에 LED 드라이버를 포팅하였습니다.

작업한 내역을 먼저 말씀드려 보면
이 LED 커널 드라이버를 유저레벨에서 제어하기 위해
동적으로 char device를 생성하도록 하였습니다.
(alloc_chrdev_region, cdev_init, cdev_add 사용)

단말을 부팅시켜서 device를 확인해 보면

# cat /proc/devices
(생략)
251 led-ctl

이라고 동적으로 251 번으로 할당된 led char device가 등록되어 있습니다.

그런데 현재 상황이 LED 드라이버를 제어하기 위해서
동적으로 생성된 led-ctl의 주번호를 눈으로 확인한 후에
mknod를 손수해줘야 합니다.

trymp의 이미지

kernel Makefile 에서 ":=" 의 의미가 무었인지요??

kernel 소스에서 Makefile 에 ":=" 라는 연산자가 나오는데,

어떤 의미인지 모르겠습니다.

":" target 과 depend 관계로 아는데, ":=" 은 무슨 의미인지 모르겠네요.

아시는 분 도움 주시면 감사하겠습니다.

페이지

프로그래밍 QnA 구독하기