프로그래밍 QnA

ejooyong의 이미지

[질문]컴파일시 에러가 발생하는데 어떻게 해야 할지...???

안녕하세요...
저는 리눅스 커널에 대해 공부하는 커널 초보생입니다... ^^

자료를 보며 실습을 하는데 에러가 나네요.
뭐가 문제인지 정말 답답하고 모르겠어서...

제가 실습해본 예제는,

#include <linux/module.h>
#include <linux/kernel.h>
#include <linux/fs.h>
#include <linux/malloc.h>
#include <asm/uaccss.h>

#define CHDRV_MAJOR 250

static ssize_t chdrv_read(struct file *filep, char *buf, size_t count, loff_t *ppos)
{
printk("chdrv_read called\n");
return(0);
}

static ssize_t chdrv_write(struct file *filep, const char *buf, size_t count, loff_t *ppos)

archtyrael의 이미지

이중 포인터 초기화 하는것 때문에 그러거등여..

첨에는
struct Flight **temp = new Flight[num][1];
이런식으로 초기화 할려 했는데
안되길래

아래와 같은 방법으로 했거등여
그런데두 안되네여..

struct Flight **temp;

for(int i=0;i<num;i++)
         temp[i] = new Flight;

다른 초기화 방법 아시면 좀 갈쳐주세여..
반드시 동적 메모리 할당을 써야 해서여.. 2중 포인터루..
ejooyong의 이미지

[질문]문자 디바이스 드라이버 만들때요...

file_operations 라는 구조체를 사용하잖아요.
그런데 이 구조체가 linux/fs.h에 선언되 있다고 알고 있는데
찾아보니까 그 파일 안에 선언되 있지 않네요.
그래서 컴파일시 error가 발생합니다.

제 친구 컴에 깔린 리눅스에서 확인해 보니
거기엔 fs.h 안에 struct file_operations 가 선언되 있더군요.
제 리눅스가 이상한건지...? 아님 뭔가 바뀐건지...?

제가 사용하는 OS는 RedHat 8.0입니다.
혹시 어느 header 파일에 선언되어 있는지 알려주세요.

Fe.head의 이미지

[질문]실행중인 프로그램에 입력을 넣을방법

test 이라는 프로그램이 아래와 같은 소스를 가지고 있다고 하고

/* a.out */
#include <stdio.h>

int main()
{
        char str[100];
        scanf( "%s", str );
        puts( str );
        return 0;
}

이 프로그램을 실행 하고 나서 입력을 다른 프로그램상에서 해주어야 할경우
어떻게 해야 돼나요..

저는 아래 코드로 해봤는데.. 안돼더군요.
[code:1]
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

eminency의 이미지

리다이렉션된 인풋인지 알아낼 방법이 있나요?

예를 들면 mysql같은 경우, 그냥 실행을 시키면 프롬프트가 뜨면서 사용자의 키보드 입력을 받게 됩니다. 그런데 실행 시킬때 리다이렉션으로 해서 스탠다드 인풋을 주면 프롬프트같은 건 뜨지않고 바로 실행이 되더군요.
mysql소스를 보면 해결될지도 모르지만 워낙 소스도 방대하고 잘 알지도 못하는 C++이다보니..ㅡ.ㅡ;;

저도 지금 이런 프로그램을 하나 짜고 있는데...
만약 인풋이 리다이렉션된 스탠다드 인풋이라면 프롬프트를 뜨지않게 하려거든요.

moonlight의 이미지

스레드 관련 질문이에요...

중복일지도 모르지만, 여러 고수님들의 조언 부탁드립니다.

[code:1]
#include<stdio.h>
#include<stdlib.h>
#include<sys/types.h>
#include<pthread.h>
#include<unistd.h>

void* printnum(void *arg);

#define MAXTHREAD 5

main()
{
pthread_t tid[MAXTHREAD];
int *t;
int i;

for(i=0; i<MAXTHREAD; i++)
{
if(pthread_create(&tid[i],NULL,printnum,(void*)i) != 0)
{
printf("Error %d\n",i);
exit(1);
}

shean0의 이미지

remalloc &lt;== malloc + memcpy 를 사용하면 세그먼트 폴트 에

안녕하세요..이거 왜 이런지...원인이 .....
아주 간단한 프로그램 2개를 비교해 부탁드립니다. 하나는 malloc 이고, 하나는 remalloc를 이용한 것입니다...

stdlib 인클루드 했는데...왜..이런지... 모르겠네요..
아래 세그

이것이 세그먼트 폴트 에러가 나구요..
gcc -o M_exam1 M_exam1.c ; M_exam1
window에서두 정상으로 돌아가는데... 음.. 원인은 gcc 옵션에 있지 않을까 하는 생각이 들기두 하지만서두...
함 조언을 구합니다.
[code:1]#include<stdio.h>
#include<string.h>

gilddong의 이미지

lisp ..

리눅스에서 lisp 프로그래밍을 하려면 어떻게 해야하나요??

학과 유닉스 머신에서는 common lisp 라고 해서 clisp 라고 하면 되는데 ;;

이맥스가 lisp기반으로 만들어진것으로 알고있는데 실제 lisp 프로그래밍을 어떻게 해야될지 모르겠더라구요.

kldp에 있는 이맥스 강좌에도 없는거 같네요 ;;

그럼 조언 부탁드립니다

rcrookie의 이미지

함수의 수행 시간 ( 커널모드, 유저모드 각각) 구하려고 해요.

안녕하세요
함수의 수행 시간을 구하려고 합니다.
특히 ,
커널 모드에서 수행된 시간,
유저 모드에서 수행된 시간을
각각 구하고 싶습니다.

setitimer() , getitimer()을
사용해서 구할수 있는것 같은데요. 사용 법을 모르겠습니다.
linux man 도 찾아보고 했는데요 도무지...

이 함수 사용법 아시는 선배님!! 좀 알려주세요.

꼭 이 함수를 사용하지 않더라도 수행 시간을 구할수 있는 방법이
있다면 알려주시면 감사하겠습니다.

감사합니다.

78sprooky의 이미지

exec() exit() 에 대하여.. 알려주세요~

a.out

void main()
{
printf("hi a");
execlp("./b.out","b.out",NULL);
printf("good bye b!");
return 0;}

b.out
void main()
{
printf("hi b");
exit();
}

a와 b라는 프로그램이 있을때..
a가 b를 호출하고 실행한 다음에 다시 돌아오고 싶은데.. 않돼요..
제가 원하는 출력은..

hi a
hi b
goodye b!
인데.. 마지막에 리턴이 되지 않아.. goodbye b!가 나오지 않네요..
고수님들 다시 리턴하는법좀 가르쳐 주세요~~~~

페이지

프로그래밍 QnA 구독하기