프로그래밍 QnA

은영신랑의 이미지

#ifdef DEBUG 사용하는데 있어서요...

대략 다음과 같이 coding 하였습니다.

#ifdef DEBUG
#define DPRINTF(x) fprintf(stderr, "%d : "x, __LINE__)
#else
#define DPRINTF(x)
#endif

int main()
{
int a;
...

DPRINTF(" a : %d\", a);

..
}

제 목적은 디버그모드로 컴파일 하면 Line Number : a : ?
이런식으로 하려는데요,
위 소스를 컴파일하면 DPRINTF passed 2 arguments, but takes just 1
이라는 에러가 나오네요..

도움좀 부탁합니다.

firster의 이미지

fork()와 exec() 개념 좀 설명해주세요.

유닉스 시스템을 접한 것이 몇일되지 않습니다.
나름대로 책도 구입하고 공부하고는 있습니다만, 모르는 것이 너무 많아서 막막해지는군요.
오늘은 오전부터 지금까지 fork와 exec,clone 시스템 호출의 개념을 잡지 못해서 열만받고 있습니다.
맨페이지 및 여기서도 검색을 해봤지만, 솔직히 이해가 되지 않더군요.
간단히라도 개념적인 설명 및 차이점을 알려주시면 정말 감사하겠습니다.
답변에 미리 감사드립니다.

kang0203의 이미지

파일 입출력시

안녕하세요.
간단한 파일 입출력을 할때 궁금한 점이 있어서여..

만약 한 파일에 대해 open을 하고 write나 read를 할때
다른 사용자도 같이 write나 read를 할 경우 문제가 되는 점이 있나여..
동시에 write나 read를 한다 해도 커널이 알아서 먼저 온 프로세스를 실행시키고
다른 프로세스는 대기 시키지 않나 해서여.. 이게 동기화문제져?
만약 문제가 있다면 어떻게 처리를 해주어야 하는지여??

질문을 하고보니 먼 말인지 ..... 그럼 미리 감사합니다.....

young93의 이미지

커널모드 소켓 프로그래밍 실행시 Warning: kfree_skb on hard I

디바이스 드라이버 모듈을 작성하고 있습니다.

커널 모드에서 sock_create()로 UDP 소켓을 열고
sock_sendmsg(), sock_recvmsg()를 이용하여
패킷을 주고 받는 프로그램을 짰는데,
패킷 수신시 이런 경고 메시지가 뜨네요

Warning: kfree_skb on hard IRQ c0098e50

뭐가 문제가 있어서 그런 걸까요.
에러가 아니고 경고니까 그냥 무시해도 상관이 없을까요?
조언 부탁드립니다.

아래는 소스입니다.

[code:1]
int recv_udpmsg(int sid, unsigned int *ip, unsigned short *port,
char *data, int len)

hskim5048의 이미지

리눅스 아카이브라이브러리를 .so 로 만드는 방법좀 알려주세요

리눅스에서 xxx.a 를 xxx.so 로 만들어야 되는데요
xxx.so 를 만든후에 nm 으로 확인해 보면
nm : xxx.so: File format not recognized 이런 에러가 나네요.

오브젝트를 .so 로는 만들어지는데요, 왜 아카이브는 안되는지 모르겠네요.
제가 만든 방법은 아래와 같습니다.
ld -o xxx.so xxx.a -G

waltherppk의 이미지

C 사용법

C 에서는 라이브러리를 어떻게 추가하나요 ?
Java 에서처럼 그냥 복사해다가 디렉토리에 추가만 해주면되나요 ?

그리고 헤더파일을 구현하는 코드에서도
헤더파일을 include만 하는게 좀 혼란스럽네요
이경우에는 어떻게 컴파일 해야하는 건가요 ?

Java 공부하다가 C 공부하려니까
Generic 개념이 좀 당황스럽네요.
명쾌한 해설 없을까요 ?

shean0의 이미지

통신에서 close를 늦게 하고 싶을때...

제가 하려는 의도는 간단합니다.
상황설명::
TCP통신에서 지금 아래 구현한 서버(main_server),
그리고 중간에 경유지 역활을 하는 middle_server,
그리고 client가 있습니다.
그런데 middle_server의 특징이 , 아래의 순서대로 움직입니다.
client==>요청--> middle-->요청==>main
<==응답<--middle<--응답<== main
-->socket close
<--> <--> 소켓 middle가 close
<--> main close

jinhoy의 이미지

각 code별루 해석해 봅시다.

Seasoned Hacker


% cc -o a.out ~/src/misc/hw/hw.c 
% a.out 
Hello, world. 

위의 % cc -o a.out ~/src/misc/hw/hw.c 를 보자면.. 이미 자기 디렉토리에

아래에 과거에 숙제 한게 있다는 뜻이겠지요.

Guru Hacker

% cat 
Hello, world. 

이거요? cat이란게 shell에서 화면에 출력하는거지요, C로 코딩할 필요가

없는 건 shell로 승부한다는 거지요.

seeker의 이미지

pipe( int fd[2] ) 질문입니다.!

int pipe( int fd[2] )
라고 선언이 되어있는데요.

int fd[2]라는 인수선언은 int *fd로 표현하는것이 더일반적이지 않나요?

어차피 fd[2]라고 해도
함수내부에서 fd+3 또는 fd[3]이란 표현이 사용될지라도
컴파일러에 의해 out of 인덱스체크는 안되지 않습니까?

단지, 파이프가 2개의 fd를 리턴하므로 그것을 알리려는 목적때문에 그렇게
선언이 되있는것으로 생각이 됩니다.

bucketquai의 이미지

mxODBC를 이용해서 insert할 때 한글 입력문제

iODBC랑 mxODBC를 이용해서 python으로 mssql2000에 자료를 insert하려고 하는데 한글 입력의 경우 제대로 insert가 안되네요
select 시에도 한글 필드의 경우 해당 값들이 0xaa... 이런식으로 나와버리는데
print를 하면 제대로 찍히긴 하지만 원래 기본적으로 한글이 나오게 할 수는 없을까요? 혹시 python 설정에 문제가 있는건지요 도와주세요 (_ _)
아참 혹시 몰라서 iODBC를 unicode로도 해보았지만 역시 안되더군요

페이지

프로그래밍 QnA 구독하기