프로그래밍 QnA

fuerza의 이미지

커널 프로그래밍에서 memcmp 쓸려면?

어떤 헤더를 써야 하죠..

그리고, strcmp를 쓰면 제꺼에서는 되는데 다른 곳(같은 커널버전)에 가면 뻑나는군요.

netdriver.h를 써서 그런가요?

kksir의 이미지

[질문] 코드분석툴/ 함수사이의 관계를 화면에 뿌려주는 툴이 있

안녕하세요.
C언어 코드 분석툴을 찾고 있습니다.
함수사이의 관계 정도를 모니터에 비쥬얼하게 뿌려 주는 것이면 좋겠는데
혹시 이런툴이 존재하는지요?

현재는 ms 윈도우 상에서 진행해야 해서 윈도우 상의 툴과
리눅스 상의 툴 둘다 추천해 주시면 감사하겠습니다.

전에 읽은 글로는 있다고 보았는데 툴 이름이 생각이 안나고 찾아보니 글
이 너무 많아 찾을 수가 없었습니다.

그럼.

renige의 이미지

소켓으로 데이터 전송시 문제점

안녕하십니까..

TCP 소켓으로 한 5M정도를 1024씩 잘라서 보내려고 합니다. 1024크기 패킷의 처음한 바이트는 패킷타입으로 사용하여 이 값을 보고 패킷을 처리합니다.

그런데 아무런 delay없이 보낼 경우, 처음에 10개정도는 패킷타입이 제대로 된 값이 들어가는데, 그 이후 부터 패킷타입값이 다른 값이 들어갑니다.
그래서 delay를 주고 보내면 제대로된 패킷값이 제대로 들어가서 받는 측에서는 제대로 받고 처리합니다.
select를 이용하여 소켓에서 데이터를 받았을 경우 처리합니다.

museok의 이미지

시스템 제한 사항을 어떻게 고쳐야 합니까?

ulimit -a를 하면 나오는 사항 중에서 open files의 수를 고치려 합니다.
kldp문서를 하나 찾아서 거기에 나온데로 /usr/include/linux/fs.h의 NR_OPEN과 NR_FILE을 고치고 /usr/include/linux/limits.h의 NR_OPEN과 OPEN_MAX를 고치고 커널 컴파일을 다시 하였는데 여전히 ulimit -a를 해보면 똑같이 나오는 군요.

sysctl -a를 했을때
fs.file-max = 65536
fs.file-nr = 600 0 65536
이렇게 나오기는 하나
ulimit -a을 하면 open files는 기본값이 1024가 나옵니다.
그리고 간단한 소켓 서버를 짜서 테스트 해본 결과 1024개 이상 fd를 열지 못하는 군요..

closeyes의 이미지

the art of computer programming이라는 책을 보다가 이해가 안

맨처음 MIX에 대해 설명하던 부분이었는데요

프로그래머가 Word의 5바이트와 +-기호를 골라서 쓰는 "field specification"라는 걸 (L:R)로 표시한다는 내용인데.

L하고 R이 먼지 모르겠습니다.

책에는 L은 "the number of the left-hand part"
R은 "the number of the right-hand part"라고 써져있는데 단순히 숫자는 아닌거 같은데 정확하게 이해가 안됩니다.

책 읽어보신 분이 조금만 알려주십시오.

읽어주셔서 감사하고 이렇게 훌륭한 사이트에 이런 질문 올려

nrabbit의 이미지

멀티 폴랫폼 프로그래밍을 위한 도구??

저는 온라인 게임을 개발중인 팀의 시스템 매니저(SM)을

맡고 있는데요.

기획하는 놈(?ㅡㅡ?)이 저희가 개발하고 있는 온라인 게임을

맥, 리눅스, 윈도우에서 모두 사용할 수 있도록 하는 계획을

제출했습니다...ㅡㅡ; 누굴 죽이려는건지....
(물론 바이너리 수준이 아닌 소스코드 수준에서 말이죠.)

그래서 여러 폴랫폼에서 사용할 수 있는 프로그래밍 도구들을

수소문 중인데요.

혼자서 다 하려니 힘이 드네요.

일단은

IDE => 이클립스

hurryon의 이미지

왜 이렇게 메모리 초기화을 하는지요?

[code:1]
#include "list.h"

int add_data(data_t data);

int add_data(data_t data)
{
list_t *new_node;

if((new_node = (list_t *)(malloc(sizeof(list_t) + strlen(data.string) + 1))) == NULL)
return(-1);

new_node->item.time = data.time;
new_node->item.index = data.index;
new_node->item.string = (char *)(new_node + sizeof(list_t)); // 이 부분이 뭘하는건지요? 단지 문자열이 들어 갈만큼의 메모리 초기화 인지요?

ham의 이미지

컴파일의 strip 옵션에 대해서...

보통 strip 옵션은 실행화일에서 디버깅 정보을 제거해서 화일 사이즈을
줄이는것으로 알고 있습니다.

궁금한것은 다음의 두 경우에도 화일 사이즈가 많이 나네요.

gcc -o test test.c
--> test 사이즈 : 11678
gcc -s -o test test.c
--> test 사이즈 : 3004

보통 컴파일 하게 되면 디버깅정보가 안들어가는것을 알고 있는데
그래서 gdb 작업을 못하잖아여.. 근데 왜 이렇게 차이가 날까요?
어떤 정보을 지울까여?
이렇게 화일 사이즈 줄이면 실행 속도가 빠르나여?

ham의 이미지

web 에서 copy and paste 할때 한칸씩 밀립니다. -.-;

보통 유닉스나 리눅스의 작업을 할때..

윈도우에서 터미날을 띄어서 vi나 vim 으로 작업을 합니다.

문제는 인터넷으로 자료을 찾다가 참고할 만한 소스가 있으면

copy 을 한다음에 터미날의 vi 에 붙이기(마우스 오른쪽버튼)을 합니다.

하지만.. 매번 소스가 1번째줄 부터 한탭씩 계속 밀리네요..

window 의 notepad는 안밀리고 그대로 paste가 되는데..

vi는 왜 밀리는건가요?

아님 set 옵션을 사용해야 되는건가요?

그럼 좋은 하루 보내세요.

leolo의 이미지

NULL과 0과 '\0' 의 차이점...

이런거 질문드려도 될런지..

정확하고 깊이 있게 말씀해주셨으면 합니다.

문자열 끝에 NULL이 사용하는 것이 잘못된 코딩이라고 하는데요.

널문자로 끝나야 하니까 '\0'을 입력하겠죠.

하여튼. 이들 3가지 NULL, 0, '\0' 에 대한 차이점을 자세히 부탁드립니다.

참고로 이들과 컴파일러에 따른 차이점도 있는지 알고 싶습니다.

페이지

프로그래밍 QnA 구독하기