프로그래밍 QnA

naraping의 이미지

[질문] Module Programming 공부하는 초보입니다.

[root@NARAPING modulePrograms]# make
gcc -O2 -DMODULE -D__KERNEL__-W -Wall -Wstrict-prototypes -Wmissing-prototypes-i
system /lib/modules/`uname -r`/build/include -c -o hello-1.o hello-1.c
gcc: cannot specify -o with -c or -S and multiple compilations
make: *** [hello-1.o] 오류 1

Linux Kernel Module Programming Guide에 있는 첫번재 소스입니다.
그런데 똑같이 코딩을 한거 같은데 오류가 나서 어떤게 틀렸는지, 혹시나 환경설정을 해줘야 하는지 가르쳐주시면 감사하겠습니다.

아래의 소스 코드를 Makefile을 이용하여 make하면 위와 같은 오류가 납니다.

avalron의 이미지

make시에 이런 에러가 발생합니다.

/users/TEST/include/abc.h: 10: undefined preprocessor directive

과 같은 에러가 발생합니다.

해서 위 파일의 10행으로 가니 #elif 가 되어 있더군요

아마도 elif를 인식하지 못하는데...방법이 없을까요?

OS 는 HI-UX 입니다. Renix r 머신이지요.

부탁드립니다...감기 조심하시고요 ..^^

jenix의 이미지

쉘 프로그램을 만들어보는중인데.. exit 나 logout 으로 종료시

안녕하세요..^^

요즘 쉘 프로그램을 만들어보고있는데요..으음..

이게 종료시에 알수없는 에러메세지를 출력하네요..

고수님들 조언 부탁드립니다 @.@

[code:1]
277 do
278 {
279 free(cmd);
280 cmd = malloc( MAXLINE*sizeof(char)+1 ); /* 한 커맨드라인의 공간 */
281
282 fprintf(stdout,"babysh-1.0 # ");
283 gets(cmd);
284
285 if( cmd!= 0 && strcmp(cmd,"exit") && strcmp(cmd,"logout") ) /* 입력한 명령어가 있다면 */

진로나라의 이미지

linked list 질문입니다. (C)

솔직히 숙제 입니다.. -_-;

숙제올리면 욕먹을꺼 뻔히 알면서도 올리게 되내요.. 도저히 몰라서..

답은 저도 바라지 않구요..

왜 않되는지를 알았으면 합니다.. ㅠㅠ

문제는 아래 open_file() 함수 부분입니다.

data.txt에서 data를 읽어 정렬하면서 linked list에 넣어야 하는대

뭐가 문제인지를 모르겠습니다.

[code:1]void open_file(char *file_name){
FILE *fp;
node *t;
node *s;
node *p;
node *r;

p = head;
s = p->next;

if ((fp = fopen(file_name,"rb")) == NULL){

sore의 이미지

static 변수에 대해..

static이란 건 말그대로 변수를 선언할 때 메모리를 정적으로 할당하여 변하지 않게 하는 것으로 알고있습니다.

static int a;
라 선언해서 a라는 변수가 0x000010 번지에 잡히면
다음에 또 a라는 것을 쓸 대에도 항상 10 번지에 쓰고 지우고 하게끔...

그렇다면 전역 변수와의 차이는 뭔가요?
전역변수도 마찬가지로 프로그램 내에서 하나밖에 없는 변수명으로 선언을 해주어야 하는 것일텐데...

실질적으로 쓰임새의 차이라던가.. 그런건 어떻게 알 수 있는 것인지...

이형민의 이미지

소켓의 keep-alive에 대해 질문입니다.

mfc 소켓으로 메신져 클라이언트를 만들었습니다.
클라언트를 사용하다가 한참 동안을 사용하지 않으면 소켓이 죽어버리는 경우가 가끔 발생이 됩니다.

nErrorCode는 WSAECONNABORTED 로 죽어버리는데
현재의 소켓이 살아있는지 죽었는지에 대한 정보를 알수 있는 방법이 없을지요.

if( Socket == INVALID_SOCKET )
{

}

소켓이 언제 죽었는지에 대한 노티를 원하거든요.

게시판을 좀 둘러보니깐 정기적으로 서버에 Send를 하면 죽지 않는다 하는데
원론적인 방법은 아닌거 같습니다

psjcap의 이미지

voltile에 관한 질문...

밑에 4개에 차이가 뭘까요..??

1) volatile int a
2) int volatile b
3) volatile int* c
4) int* volatile d

그리고 thread 종료 flag로 volatile을 사용하려고하는데..
전역변수로 사용하기가 어려워서.. 포인터를 이용하려고 하거든요..
그럴 경우 위 네가지 중 변수 선언을 어떻게 해야하나요..??

처음 변수선언하는 부분이랑 포인터르 받는 부분이랑 둘다요..
무지 헛갈리네요..ㅠㅠ

samdochen의 이미지

배열연산이요.

안녕하세요.. 허접질문... 헤~~

예를 들어..구조체가 있고, 파일이 있습니다.파일은 데이터가 바이너리로 되어있구요...

struct bae{
unsigned char a[2];
unsigned char b;
}BAE;
BAE baeinfo;
main()
{
fp = fopen("data.dat",w);
for(i=0; i<10; i++)
{
baeinfo.a[2]=fgetc(fp);
baeinfo.b=fgetc(fp);
}
fclose(fp);
}

이랬을때...
바이너리로 되어있는 파일을 확인할수 있게 텍스트로 바꾸면..
한 레코드당
hatbary의 이미지

ESTABLISH 를 강제로 종료할수 없나요??

안녕하세요??

서버를 코딩하다가 답답한 상황을 만나서 질문 올립니다..

레드햇 8.0, 커널 2.4.18-14smp에서 작업하구 있는데요...

서버 소켓을 KEEPALIVE로 설정하지 않고, 타임아웃을 설정해놨구..
클라이언트 측에서는 KEEPALIVE로 설정하구, 마찬가지로 타임아웃 설정해놨구요..타임아웃은 30초 줬구요..

근데..가끔 어떤 상황이 발생하냐믄...

netstat로 보면 recv-Q와 send-Q가 모두 0인데, 상태는 ESTABLISHED로 되어있구, 서버 프로세스를 보면, read(소켓번호, .. 에서 블럭되어 있거든요..

neobug의 이미지

FreeBSD의 시스템 콜(SystemCall) 질문 입니다.

Linux의 시스템 콜
아규먼트를 일단 스택에 넣어주고 시스템 콜 함수를 호출 한 다음에
ax에 시스템콜 index를, bx~dx 까지는 인자를 스택으로부터 읽어
들여온 후, 소프트웨어 인터럽트로 커널모드에 들어가는 걸로 알고 있습니다.

그러면 FreeBSD의 경우엔 어떻게 되는지 gdb를 이용해 알아보니
일단 아규먼트를 스택에 차곡차곡 넣고서는 함수를 호출......
호출된 함수 안을 들여다 보면 레지스터 이용 이라곤 ax 하나 밖에 없네요.
물론 ax에는 FreeBSD에 정의된 시스템 콜 index를 넣는 레지스터구요.

페이지

프로그래밍 QnA 구독하기