프로그래밍 QnA

sunbee의 이미지

[socket] select - thread pool 관련 질문 드립니다..

nonblock socket 이고, main 프로세스에서 thread pool을 만들고요, main process 는 select() 하여 놀고 있는 thread로 일을 시키러 보내는 자료구조인데요...

현재 문제점이 여러 client가 data를 보내는데 한 client만 계속 event가 발생됩니다... 그 client의 접속을 끊으면 다른 client의 data를 받아들이고요.. ㅡㅡ;;

이거 왜 이런거죠???
제발 가르침을 주십시오...

hbsnow의 이미지

유니코드로 변환

프로세스를 말씀드리면

중국프로젝트로... 중국어 간자를 사용합니다.

웹(리눅스아파치, PHP)에 어드민페이지에 사용자이름(중국간자)을 넣습니다

입력된 사용자이름은 mysql에 저장되며

저장된정보는 C프로그램을 통해

중국폰으로 네트웍 전송후 중국폰에 디스플레이됩니다

근데 글자가 깨집니다.

수많은 테스트를 통해 깨지지 않는 경우를 발견했는데..

유니코드로 저장된 텍스트 문서를 폰에 저장해서 읽어온 텍스트는 깨지지가 않습니다.

mousemax의 이미지

read 함수의 사용에서 no-delay문제

fd = open()함수로 파일 또는 시리얼 포트 등을 열고

read 함수로 읽어올때 일반적으로 no-delay optian은 밑과 같은걸로 알고있습니다.

fcntl(fd, F_SETFL,O_NDELAY);

제가 사용하는 코드
while(1)
{
state = read(fd, buf, 255);

if(state > 0)
{
:
printf("\n");
}
}
서도 작 작동됨니다.
하지만 제가 시리얼 포트를
non-canonical
newtio.c_cc[VTIME] = 1;
newtio.c_cc[VMIN] = 0;
로 설정해서 보통 매 read함수로 읽을때 만다 거의 한byte를 읽어오는데

nayana의 이미지

static_cast< ? > 형변환 연산자?

static_cast형변환연산자에서 에러가 납니다.

a.cpp: In static member function `static void Rational::expandTheFreeList()':
a.cpp:112: invalid static_cast from type `char*' to type `NextOnFreeList*'
a.cpp:119: invalid static_cast from type `char*' to type `NextOnFreeList*'

char* 에서 NextOnFreeList*변한이 타당하지 못하다고 나옵니다.
소스는 다음과 같습니다.
[code:1] 1 #include <cstdio>
2 #include <new>
3
4 #include <sys/time.h>
5 #include <unistd.h>
하하의 이미지

곱하기 연산?

unsigned long long int 는 8 바이트 입니다.

아래의 값은 충분히 들어 갈 수 있는 공간이죠..

근데 20억 * 60 을 하면 이상한 값이 ii 에 들어 갑니다.

그냥 계산해서 결과만을 ii에 직접 넣을땐 전혀 이상이 없습니다.

이 문제의 원인과 해결책을 제시해 주세요.. ㅠㅠ;;;

[code:1]
main()
{
unsigned long long int ii;

ii = 200000000 * 60;

printf("%lld\n", ii);

// '*' 연산을 사용안하고 결과만을 넣었을때
ii = 12000000000;

printf("%lld", ii);

이준의 이미지

Shell형 프로그램을 만들기 위해 제공되는 인터페이스가 있나요?

안녕하세요?

SHELL형식으로 다루는 프로그램을 만들려고 하는데요

일종의 dbx 나 gdb같은 프로그램을 만들려고 하는겁니다.

현재 쉘의 command line editing 기능까지 그대로 물려 받고 싶은데요 거기에 제가 만드는 애플리케이션에 builtin command를 추가 하는 형식으로 프로그램이 만들어지는거구요..

일일히 쉘의 특성에 맞추어 구현을 해야 하는건가요? ^^;

궁금!!

kknd345의 이미지

책에 있는 간단한 쉘 스크립트인데요. 왜 안 되는지 모르겠어요

처음으로 책보고 쉘 스크립트 만들어 보는건데요.

vi append 해서요

#!/bin/sh
case $#in
       1) cat >> $1 ;;
       2) cat $1 >> $2;;
       *) echo "Usage: append [fromfile] tofile" 1>&2;;
esac
 
만들고 나서요
chmod +x append 하고 data1.txt data2.txt을 대충 만들고나서

./append data1.txt data2.txt 하니깐

./append: line 3: syntax error near unexpected token `1'
./append: line 3: `     1) cat >> $1 ;;'

이런 에러가 납니다.
theone3의 이미지

라이브러리 충돌 문제.

먼저 간략히 설명을 드리겠습니다.
A라는 프로그램이 있습니다.
A라는 프로그램은 aaa.cpp, bbb.cpp, ccc.cpp 로 구성이 되어 있고,
ddd.a라는 라이브러리를 링크합니다.
ddd.a라는 라이브러리는 ddd.cpp, eee.cpp, fff.cpp로 구성이 되어 있습니다.
그 중에서 ddd.cpp를 A라는 프로그램에서 직접 쓰도록 만들었습니다.
따라서 A라는 프로그램은
aaa.cpp, bbb.cpp, ccc.cpp, ddd.cpp 로 만들어지고,
ddd.a라는 라이브러리는 ddd.cpp, eee.cpp, fff.cpp로 만들어집니다.
A라는 프로그램에서 ddd.a 를 링크해서 쓸때,

psjcap의 이미지

solaris에서 ps 프로그램 작성시..

solaris에서 ps 프로그램을 작성했습니다..

우선 /proc/pid/psinfo 파일을 psinfo_t 형 구조체로 읽어온 후..
psinfo_t형 구조체의 pr_argv 값을 이용해서..
/proc/pid/as 파일에서 전체 argv 값을 읽는 형태로 작성하였습니다..

근데 64bit 로 컴파일된 프로세스들이 있는데..
이 넘들은 /proc/pid/as 파일을 읽질 못하고 있습니다..ㅜㅡ;

pread나 pread64로 읽으려고 하면..
EOVERFLOW 에러가 리턴됩니다..

혹시 비슷한 프로그램을 작성해 보신 분이나..
실행 프로그램의 full path

accent88의 이미지

mips64 5k processor의 float형 최소값

저는 mips64 5k 계열의 processor(FPU 내장)를 사용하고 있습니다. 관련 user's manual의 29page을 보면 float형의 최소값이
1.1754943508e-38 이라고 나와있습니다. 그런데 일반적인desktop(x86 계열의 linux)환경에서 float형 최소값을 보면 1.4012984643e-45 라고 나옵니다.

그렇다면 mips64 5k 계열에서는 float형의 최소값으로 user's manual에 나와있는 값 이하로는 표현이 아예 불가능하다는 것일까요? gcc option으로 -mhard-float, -msoft-float 두 가지 모두 테스트해보았지만 최소값 표현이 제

페이지

프로그래밍 QnA 구독하기