프로그래밍 QnA

jung78yw의 이미지

문서내 알수없는 문자 처리

전문으로 데이터를 받는 상황인데요..
ProC를 이용해서 수신 배치 프로그램을 만들었고요.
전문길이가 800바이트씩 1만건 정도씩 받습니다.
memset(sdata4,0x00,sizeof(sdata4));
memset((char *)&tmp4, 0x00, sizeof(BMT_DEBFILE));
while(fgets(sdata4,sizeof(sdata4),in)!= NULL)
{
...
}
이렇게 처리를 하고 있는데..
어떨때 800바이트가 아닌 400정도에서 끈어질때도.. 500정도에서 끈어지는 상황도 생겼습니다.
UltraEdit로 전문을 열어봤더니 해당부분에 아무런 이상이 없었습니다.
그래서 EditPlus로 열어봤더니 해당부분이 전자(전자/반자할때) 공백 같은게 생겨서 (첨부파일 가운데 공백)
파일을 cat test.dat | sed 's/ / /g' > test.dat_T
명령어로 전자공백을 제거해도 안되는걸 보니 전자공백은 아닌것 같습니다.

CH331의 이미지

a

CH331의 이미지

#include <expect.h> 질문요..

-lexpect 추가해서 컴파일했습니다.

#include
#include
#include

#define SFTP_PROMPT "ftp> "

int main(){

FILE *fp1;

char buff[2][128]= {"open","open"};

printf("시작\n");

if (0 == (fp1 = exp_popen("ftp"))) {

printf("exp_popen failed\n");
exit(-1);
}
if (0 > exp_fexpectl(fp1,exp_glob,"ftp> ",0,exp_end)) exit(-1);

fprintf(fp1,"%s\n", buff[1]); // "ftp> " 프롬프트가 뜨면 open 전송

return 0;
}

위와같이 하면

쉘에 ftp를 쳐서

CH331의 이미지

#include <expect.h> 질문요..

-lexpect 추가해서 컴파일했습니다.

#include
#include
#include

#define SFTP_PROMPT "ftp> "

int main(){

FILE *fp1;

char buff[2][128]= {"open","asdf"};

printf("시작\n");

if (0 == (fp1 = exp_popen("ftp"))) {

printf("exp_popen failed\n");
exit(-1);
}
if (0 > exp_fexpectl(fp1,exp_glob,"ftp> ",0,exp_end)) exit(-1);

fprintf(fp1,"%s\n", buff[1]); // "ftp> " 프롬프트가 뜨면 open 전송

return 0;
}

위와같이 하면

쉘에 ftp를 쳐서

parkon의 이미지

[완료] 클래스 멤버 함수 포인터에 관한 질문드립니다.

요즘 제가 염치 없이 여기에 질문글을 많이 올리는 군요...,

하고 싶은 건 추상 클래스에서 구상 클래스의 멤버 함수 포인터를 인자로 받아 오는 건데요,

대충 코드를 써 보면

class Abstract {
 
   void Draw(double (*fcn)(double)) {
      // 이 함수 fcn에 해당하는 그림 그리는 루틴
   }
}
 
class Concrete : public Abstract {
   double f1(double x);
   double f2(double x);
   //...
   void Draw1() { Draw(&Concrete::f1; }
   void Draw2() { Draw(&Concrete::f2; }
   //...
}

이런 식을 원하는데 잘 안되는군요.

hardboiled65의 이미지

[완료] gtk와 qt의 모양새에 대해 궁금한점이 있습니다.

요즘 리눅스에서 GUI 프로그래밍에 관심이 있는데 몇가지 의문점이 있어서 질문드립니다.

리눅스는 우분투를 사용하구요. 데스크톱 환경은 그놈을 사용중입니다. KDE도 설치되어있습니다.

그놈에서 KDE 어플(qt)을 실행시켜보면 gtk 테마가 그대로 적용이 되어서 이질감이 없습니다만, 반대로 KDE에서 gtk 어플을 실행해보면
투박한 모양새를 보여줍니다.

물론 KDE 설정에서 gtk 어플에 사용할 look and feel을 KDE와 비슷하게 지정해줄 수 있지만 이상하게도 그게 적용이 되는게 있는가 하면(
대표적으로 파이어폭스), 전혀 적용되지 않는것도 있습니다. 노틸러스도 그 중 하나입니다.

반면 그놈에서는 아무런 설정을 해주지 않아도 qt어플에서도 현재 사용중인 gtk 테마가 그대로 적용되는 모습이네요.

왜 이런 차이가 있는걸까요? gtk가 qt의 라이센스에 대응해서 만들어진걸로 아는데 그때문에 미리 qt를 고려했기 때문인가요?

declspec의 이미지

cdecl 과 stdcall 에 대해서

cdecl 과 stdcall 의 차이는
함수 인자에 대한 스택정리를 누가 하느냐 인데
cdecl 의 경우 caller 가 하는 과정이 명확한데
stdcall 의 경우 callee 가 어떻게 함수 파라미터를 정리하는지
궁금하네요

callee 가 파라미터 정리를 하려면
caller 가 call 을 했을때 리턴어드레스가 스택에 들어가고
그 다음에 인자들이 push 되야 되는것 아닌가요?
아무튼 stdcall 에서 어떤순서로 함수 인자를
callee 가 정리할수가 있는건지
설명해주실분...!

pogusm의 이미지

usb캠으로 웹캠프로그램을 개발한후, usb캠에서 cctv카메라로 변경하고자 할때..

좋은 원격 웹캠 장비/프로그램들이 많지만,
경험 삼아, (개인용도로 사용해보려) 공부해보려 합니다.

근데 너무 배경지식이 없어서 고수분들의 조언이 필요합니다 ^^;

일단 usb캠(1~3대)을 이용해서 c++로 웹으로 스트리밍하는 프로그램을 만들어 보는게 첫번째 목표입니다.
(OS는 centOS 5.5)

그런데 usb의 길이제한이 있어서..(5미터)

나중엔 cctv카메라 등으로 교체해야할거 같은데..

usb캠처럼 cctv카메라(전용 카드포함)을 통한 영상도 c++ 에서 간단히 불러들일 수 있는건가요?

아니면 cctv카메라(전용카드) 제조사에서 API 를 공개하지 않으면 불가능하다던가.. 그런건가요?

조언 좀 부탁드립니다

declspec의 이미지

가상/물리메모리 주소에 대한 질문

안녕하세요
일반 유저 애플리케이션을 만들때
직접적으로 원하는 물리 메모리에 접근할 방법은 없겠죠?

그렇다면 커널 레벨의 디바이스 드라이버를 작성할때는 가능한가요?
예를들어 실제 메모리 카드의 원하는 물리주소 (예:0x12345678) 번지에
read/write 를 하는게 가능한가요?

char* p=0x12345678;
(*p)=1;

이런 코드가 디바이스 드라이버 코드중에 있다고해도
여기서도 결국 0x12345678 번지는 MMU 에 의해서
변환되는 가상메모리주소인가요?

프로그램 코드에서 임의의 실제 메모리주소를 직접 접근할수는
없나요?

parkon의 이미지

[완료] 극초보 질문입니다, 두개의 상수 문자열을 받기 위해선...

창피하지만 극초보 질문하나 올립니다.

인덱스 넘버를 입력 받아 그 인덱스에 해당하는 두개의 상수열을 돌려주는
루틴을 만드려고 하는데요, 쉬운것 같은데 잘 안되는 군요.

제가 해 본 방법.

void GetSymbolTitle(int n, const char* symbol, const char* title) {
...
if (n== table[k].index) {
symbol= table[k].symbol;
title = table[k].title;
return;
}
...
}

위 코드에서 보시다시피 이 함수의 내부에는 look-up table이 있어서 인덱스 n에 해당하는
symbol과 title 문자열을 찾는 루틴이 있습니다.

근데 만약 symbol만 받고 싶다면

const char * GetSymbol(int n);
이렇게 하면 잘 되는건 확인했습니다.
title도 마찬가지고요.

페이지

프로그래밍 QnA 구독하기