프로그래밍 QnA

shs0917의 이미지

리눅스에서 메시지큐 사용법을 알고 싶은데요..

C로 프로그래밍 할 때 메시지큐를 사용하기 위해

제공되는 함수같은 것들을 알고 싶습니다..

링크도 괜찮고.. 문서도 좋구.. 답변 부탁 드립니다..

roke79의 이미지

pthread version 문제가 발생하는지에 대해서 질문입니다.

[=12]
Pthread를 사용해서 producer and consumer relationship을 해결한

소스입니다. 근데 이 소스에서 약간의 문제가 발생해서 조언을 구하려고

올렸습니다. 이 소스를 pthread가 NPTL version이 0.34에서는 아무

이상없이 돌아가는데(shell 프로그램으로도 돌려보고, consumer를 10만번

이상도 돌려봤을 때 아무 이상이 없었습니다.)

근데 제가 쓰고있는 Linux OS에서는(Redhat 9.0 이고 pthread

NPTL version이 0.29 입니다. ) 가끔 씩 consumer가 blocked 된 상태가

발생합니다. (producer가 consumer의 pthread_cond_signal을 받고

eminency의 이미지

SunOS에서 컴파일시 warning...

clmu[i].arr = (void *)(record+CADDR(cnos[i]));

위와 같은 부분에서 Warning이 뜨는데 원인도 알고 해결방법도 대충 알겠는데 조금 더 깊은 부분을 알고 싶어서 글을 올립니다.

뜨는 Warning은 다음과 같습니다.

Quote:
Table.c", line 154: warning: pointer to void or function used in arithmetic

clmu[i].arr은 void * 타입이며 record도 void *타입입니다. CADDR은 매크로인데 short로 보시면 되겠군요.

record안에 여러가지 타입의 데이타가 죽 이어져 들어가 있기 때문에 이 코드는 arr에 필요한 데이타의 시작 주소를 넣어주는 역할을 하는 것입니다. 즉 record의 시작주소에 CADDR만큼 더한 만큼의 주소값을 arr에 넣어주는 코드입니다.

cnovice의 이미지

파일 에디트용 스크립트 질문

자바파일에서 System.out.println 이 들어있는 라인을 모두 제거하는것을

스크립트로 만들수 있는지여

만들수 있다면 스크립트 예제 좀 부탁드립니다.

파일은 대략 50개 정도입니다.

50개 파일에 들어 있는 System.out.println을 모두 제거하려고 합니다.

하하의 이미지

endian 과 static , heap 영역과의 관계???

아래 코드를 보면 solaris , AIX 같은 경우

int main(void) {

        int  val;
        char *ptr;


        ptr = (char*)&val;

        val = 0x89ABCDEF;


        printf("%X.%X.%X.%X\n", ptr[0], ptr[1], ptr[2], ptr[3]);

        exit(0);
}

아래와 같이.

FFFFFFEF.FFFFFFCD.FFFFFFAB.FFFFFF89 (Little endian)

Linux 일 경우

FFFFFF89.FFFFFFAB.FFFFFFCD.FFFFFFEF (big endian)

이와 같이 찍힘니다.

제가 묻고 싶은건..... 이건 static 영역에 집어넣을때 endian

seeker의 이미지

패턴 검색 함수

unix c ( c++ )에서요.

인수로 패턴스트링을 받아드여
파일속에서 해당하는 문자열을 뽑아내려하는데요.
(한마디로 grep같은 .)

패턴 검색하는데 쓰이는 함수. 어떤걸 쓰면되는지요?

closeyes의 이미지

소프트웨어 설계에 최적화된 툴 없을까요?

개발 시 사용되는 여러가지 유스 케이스 다이어그램이나 , 사용자 계층 분석도 , 컨텍스트 다이어그램같은 주로 요구사항 분석 부분,아키텍처 설계, 세부기능 설계를 다이어그램이나 효과적인 문서형식으로 만들 수 있는 툴이 없을까요?

사용하시거나 아시는 툴좀 가르쳐 주십시오
부탁드려요^^

thisnome의 이미지

소켓프로그램에서 read()와 recv(MSG_WAITALL)의 차이점

서버쪽에서 클라이언트의 요청을 preforking방식으로 받아서 처리하는 부분을 작업하고 있습니다.
각 Child에서의 Read부분을 다음과 같이 두가지중 어떤것을 사용하는게 더 좋은건지 고민중입니다. (OS는 Redhat 9.0 입니다)

[code:1]
while(total_count < sizeof(DBIF_REQ))
{
again:
if((count = read(conn_fd, ((void *) &reqData) + total_count, sizeof(DBIF_REQ) - total_count)) < 0)
{
if(errno == EINTR)
goto again;

Trace("read() : error");

하하의 이미지

unsigned int

main() {

unsigned int val;

val = 0x89ABCDEF;

printf(" %d \n", val);

}

위 코드에서 원하는 어떤 숫자(아주 큰 10진수)가 안나오고

-1985229329

이런 수가 나오는 이유는 무엇인가요?

sizeof(unsigned int) 하면 4byte가 찍힘니다.

이말은 최상위. 부호 비트까지 수로 채워 넣을 거다. 그러니

0xffffffff 의 숫자까지 표현할 수 있다가 아닌가요?

왜.. 값을 표현 못하겠다의 의미 같은 -(음수부호)가 붙어서

오는 건가요?...

shean0의 이미지

makefile로 구현할때.. 전달인자를 main에 주는 방법이 어떻게

움.. 지금까지.. 이럴 필요가 없었는데..
컴파일시.. 옵션으로 debug level를 조절하려구 합니다...

이와 같은 일을 한다고 생각하니..
기본적으로
makefile로 구현할때.. 전달인자를 main에 주는 방법이 어떻게 되는지요?
이것이 고민이 되는데요...

조언 부탁드립니다.

페이지

프로그래밍 QnA 구독하기