프로그래밍 QnA

mandugukbap의 이미지

커널 장치 드라이버 (device driver) 만들 때

Linux 커널 (3.2.x)에 디바이스 드라이버를 만들고 있습니다.

해당 디바이스 드라이버의 용도는 사용자 영역 (User-space)에서 대략 100 바이트 내외의 데이터를 커널 영역 (Kernel-space)으로 내려 보내서 커널 영역 전역 변수에 짧은 시간 저장해 두려는 목적입니다.

많은 분들의 도움으로 장치 드라이버를 작성할 수 있었습니다. 코드를 다 옮기려니 너무 길어서 대충 중요한 부분만 옮겨 보자면 저 아래 보이는 코드와 같습니다.

아무튼 해당 드라이버는 제가 원하는대로 작동을 하고 있습니다. 다만 이 모듈(드라이버)을 사용하기 위해서는 항상 mknod를 이용해 /dev/test_device 라는 노드를 생성해야 하더군요.

ktkmyfeeling의 이미지

icmp ping 에서 recvfrom 에서 블락이 걸립니다 ㅠㅠ 죄송하지만 이유를 모르겠어요 ㅠ

recvfrom 에서 블락이 걸립니다 ㅠㅠ 죄송하지만 이유를 모르겠어요 ㅠ

printf로 찍어본 결과 test3 까지는 출력이 되는데 그 이후로 부터는 먹통이 되어 버립니다.ㅠ

책에 있는 예제로 해서

현재 있는 ip.h 와 icmp.h 파일로 변경도 하였고

컴파일 오류도 나지 않습니다.

그런데 실행만 시키면 recvfrom 에서 sendto 를 받지 못하는것 같습니다. ㅠㅠ

이유를 잘 모르겠어어 이렇게 글 올립니다.

고수님들 이유 좀 알려주세요 ㅠㅠ

#include
#include
#include
#include
#include
#include
#include
#include
#include

paser2의 이미지

c#과 오라클 간의 한글 전송이 제대로 되지 않습니다

oledb를 사용해서 C#(클라이언트) <-> 오라클 서버 연동을 하고 있습니다
c# 프로그램에서는 쿼리문을 보내서 결과를 받고, update나 insert 등으로 입출력을 하고 있습니다.

windows 7 에서는 별 문제 없이 잘 동작하는데
xp에서는 이상하게 한글 오류가 뜹니다
영문자와 숫자를 빼면 전부다 ???로 뜹니다

읽기를 했을때 한글 부분은 죄다 ??로 뜨고
반대로 c#에서도 한글으로 입력한 부분은 서버에 ???로 저장되어 있습니다

Encoding enc = Encoding.GetEncoding("iso-2022-kr");
string sql = string.Format("INSERT into test values ('223', '犬32', '강아지32', 'rkddkwl32')", enc);

run1130의 이미지

schedule_alram..

signal (SIGALRM, schedule_handler);
gettimeofday(&current_tv,0);
schedule_alarm(9-current_tv.tv_sec%10, 1000*1000-current_tv.tv_usec);

이랑

gettimeofday(&s_wind.time,0);
s_span_microsec=(s_wind.time.tv_sec-s_previous_time.tv_sec)*1000*1000+(s_wind.time.tv_usec-s_previous_time.tv_usec)

이 구문이 이해가 잘 가지 않아서요...

일부분인데 주석좀 부탁드릴게요.

n4u9h7의 이미지

환형큐와 검색방법에 대해 질문좀 드리겠습니다 ㅜ

환형큐 형태로 지속적으로 계속 데이터를 저장할 수 있는 구조를 만들었습니다.

시작은 front는 가만히 있구 rear만 움직여서 한바퀴동안 데이터를 저장합니다.

그 이후 메모리가 다 차면 front는 움직이면서 데이터를 지워나가고 rear 는 또 계속 저장하는 구조입니다.

저장하는데는 문제가 없는데 다름아니라 저장된 데이터를 검색하는 방법에 대해 조언을 얻고 싶습니다..

처음에는 전체 큐에서 반을 잘라나가면서 검색하는 방법을 채택했는데.. 이경우 데이터를 저장한것이 한바퀴가 넘었을경우

검색을 하지 못하더라구요... 뭔가 효율적인 방법이 있다면 리플 부탁드리겠습니다!!

somedayhow의 이미지

linux make파일 작성할때

구성요소는

main이 있고

메인이

Initialize();

Create_Net( Network );

Layout( Network );

SupervisedTrain( Network);

Free_Memory (Network);

위 함수들을 호출하고

SupervisedTrain이

Run과 ShowResult를 호출하고

Run이 Activation을 호출하는 구조입니다.

각종 선언들은 basicn.h안에 넣었습니다.

struct NeuralNetwork * Initialize();

void Create_Net(struct NeuralNetwork *);

void ShowOption (struct NeuralNetwork *);

void Layout(struct NeuralNetwork *);

void SupervisedTrain(struct NeuralNetwork * Network);

cmjung88의 이미지

pthread류 함수 중 pop과 push함수 질문입니다.

안녕하세요, 시스템 프로그래밍을 APUE책으로 공부하고 있는 학생입니다.

쓰레드 관련 11장 파트를 배우는데 pthread_clean_push함수와 짝이 되는 pthread_clean_pop 함수가 이해가 되지 않아서 질문 올립니다.

제가 알고 있는 pthread_clean_pop함수는 인자가 0일시 쓰레드가 어떤 이유에서 종료되어도, push에서 설정한 함수를 실행하지 않는다! (Non Zero = 실행, Zero 실행X)

인데요..! 아래에는 APUE 책에 있는 예제 소스 코드입니다.

somedayhow의 이미지

꼭 읽어주셨으면 좋겠습니다. 메모리관리문제

동적을 할당을 하여서

그 자리에 메모리가 잘 들어간것까지 확인했습니다.

그런데 메모리 할당과는 아무런 관련이 없는 루프를 돌다가

할당해주었던 메모리가 사라집니다. (주소가 ex)0x60301 ->0x38)

제 컴퓨터 메모리가 그렇게 작은것도 아니고(8GB입니다) 할당을 그렇게 많이 시킨것도 아닙니다.

다른 녀석들 다 괜찮은데 수많은 배열중에 하나만 이렇게 말썽을 부립니다.

꼭 좀 읽어주시기 바랍니다.

아래 코드를 통해 Network->Layer[0].Neuron[i].Dendrite에 동적할당을 했습니다.

junku901의 이미지

tcp/ip 공부 도중 eof 전송에 대한 이해가..


c언어로 tcp/ip 네트워크 프로그래밍을 공부하고 있는 학생입니다

현재 사용하고 있는 교재에서 파일전송하는 프로그램을 만드는데

클라이언트가 파일의 끝을 어떻게 알지 판단할때 서버의 출력스트림을 종료해서 클라이언트에게 EOF 를 전송하는 방식을 이용하고 있습니다

그런데 여기서 궁금한것이 있는데 정말 서버의 출력스트림을 종료할때 클라이언트에게 EOF가 전송되고 그래서 read함수가 0을 반환하는 것으로

파일의 끝을 구분한다면 파일내에 EOF와 같은 바이트열이 포함되어 있을땐 어떻게 되는 것인가요? 그러면 출력스트림이 닫히기 전에

파일내에 있는 EOF와 같은 바이트열이 전송되서 클라이언트의 read함수는 아직 파일전송이 완료되지 않았는데도 0을 반환하게 되지 않나요?

음.. 약간 좀 기초적인 질문같긴 한데

만약에 서버에서 파일전송의 끝을 알려주기 위하여 클라이언트에게 어떤 바이트열을 마지막에 보낸다 하든 파일내에 그 바이트열과 완전 동일한

바이트열이 존재한다면 문제가 되지 않나요?

HDNua의 이미지

Visual Studio로 완성한 프로그램을 배포하려면 어떻게 해야 하나요?

안녕하세요.
MonoDevelop 툴, GTK#을 이용하여 조그마한 프로그램 개발을 거의 마친 상태입니다.
제목에 VS에 대한 배포 방법을 여쭌 것은, 그 방법을 알면 자연히 그러한 방법으로
MonoDevelop에서 설정을 맞춰주기만 하면 된다고 생각해서였습니다.

쓸 만한 프로그램으로는 첫 완성작이라, 이런 부분에 대한 지식이 부족합니다.
"프로그램 배포", "릴리스 모드" 등으로 검색해보았는데 제가 원하는 글은 잘 눈에 안 띄더군요.
iPhone App Store에 앱을 올릴 때는 개발자 등록이 되어있으면
바이너리를 만든 다음에 이걸 인터넷에 전달해서 통과되기만 하면 되었는데,
VS에서 이런 걸 할려면 듣기로는 디버그 모드에서 릴리스 모드로 변경을 하고
제가 모르는 뭘 하고 어쩌고 이랬던 것으로 기억합니다.

페이지

프로그래밍 QnA 구독하기