프로그래밍 QnA

jw8704의 이미지

[해결-자답] sys_write(),sys_read() 시스템콜 수정 후 , 때때로 kernel panic 이 발생합니다. 항상 그런것이 아닙니다. 도와주세요.

asmlinkage ssize_t sys_read(unsigned int fd, char __user * buf,size_t count)
asmlinkage ssize_t sys_write(unisgned int fd, const char __user *buf,size_t count)

이 두개의 함수를 printk 로 모니터링을 해야할 일이 생겼습니다.

그래서 저는 위 두함수내에 printk 로 buf 와 count 값등을 출력하는 루틴을 삽입했습니다.

그리고 이것들이 원하는 시점에만 작동하도록 하기위해 , if 문을 사용했습니다.

if(my_Flag==1)
{
...코드
}

babomose의 이미지

[완료] Segmentation fault 에러 문제

현재 운영 관련해서 업무를 보고 있습니다.

최근 보안문제 때문에 FTP를 사용하기 위해서 암호화를 하라는 위의 명령에 따라서 FTP 암호화 테스트를 하고 있습니다.

사실 단순하게 C로 코딩해서 시스템 계정과 패스워드를 숨기려고 하는데요.

"Segmentation fault"가 발생합니다.

프로그래밍에 대해서는 대학교 때 배운 책한권이 전부라서 많이 부족합니다. 고수님들의 도움을 요청드립니다. ㅠ

감사합니다.

질문 1. Segmentation fault 에러 해결책이 궁금합니다. ㅠ

질문 2. Windows, Linux and Unix 환경에서 사용하게 될 프로그램인데 만약 필요한 헤더파일이 시스템에 없다면 따로 서버에 추가해 줘야 하는지?
추가한다면 어느 위치에 추가해야 하는지 궁금합니다.

NOTE : ID와 Password를 c코드로 숨기고 ftptrans.sh라는 스크립트를 이용해 ftp를 사용하는 용도로 개발 중입니다.

fivestar의 이미지

커널 패닉 메세지를 디버깅 해보았습니다..

커널 패닉이 발생하여 oops 메세지를 추적한 결과

원본 source 를 objdump 하여 해당 주소를 확인해보니 아래와 같습니다.

5c7: f0 0f c1 87 80 00 00 lock xadd %eax,0x80(%rdi)

add명령어에서 패닉이 나는데 원인이 피연산자가 없어서는 아닐것 같은데 이유가 무엇일까요?

어셈을 잘 볼줄 몰라서.. 도움좀 부탁드립니다..:)

s97083의 이미지

[질문] sigaction 과 pause 사용에 문제가 생겼습니다.

안녕하세요
코드 참고해서 수정을 좀하고 있는데 아래와 같이 핸들러를 등록하고..

act.sa_handler = sighandler;
act.sa_flags = SA_RESTART;//0;
sigemptyset(&act.sa_mask);
sigaddset( &sigset, SIGUSR2);
sigaction(SIGUSR2, &act, NULL);
중간에 pause를 호출 했습니다.
while(run_flg) { <-- 전역 변수...
pause();
}

ksc4042의 이미지

TCP에서 MSS보다 큰 Size의 Packet을 보낼 때 Fragmentation은 어디서 일어나는지 궁굼합니다.

질문 그대로 MSS보다 큰 크기의 Packet을 보낼 때 송신측 Wireshark에서는 한 번에 MSS*4정도의 Data를 한 번에 보냈다고 나오는데, 받은 곳에서는 이를 세 개의 Packet으로 나누어 받았습니다.

이를 분할하는 부분이(분할하여 TCP Header를 붙이는 부분.) 소스에서 정확히 어느 부분인지 찾지 못하겠습니다. (net/ipv4/ip_out.c 이런 식으로..)

가상머신 환경에서 테스트하였습니다.

혹시 알고 계신 분이 있으신지요.

s97083의 이미지

[질문] sigaction 과 pause 사용에 문제가 생겼습니다.

안녕하세요
코드 참고해서 수정을 좀하고 있는데 아래와 같이 핸들러를 등록하고..

act.sa_handler = sighandler;
act.sa_flags = SA_RESTART;//0;
sigemptyset(&act.sa_mask);
sigaddset( &sigset, SIGUSR2);
sigaction(SIGUSR2, &act, NULL);
중간에 pause를 호출 했습니다.
while(run_flg) { <-- 전역 변수...
pause();
}

그리고 호출되는 sig 함수에 while 문의 탈출 조건을 걸었습니다.
void sighandler(int signo)
{
run_flg = 0;
}
문제는 pause까지 간 이후에 시그널을 받아도 pause 이후 부분부터 다시 시작하지를 않고요.
그냥 시그널만 받는 부분만 살아있습니다.

creatorJinsang의 이미지

[완료]클래스의 멤버로서 포인터 멤버를 가질 경우에 질문좀여!

class Room{
private:
        Place* place;
public:
        Room(const int& size);
};
 
Room::Room(const int& size){
	place = new Place[size];	
}

위와 같이 Room 클래스의 복사 생성자를 형성해서 넘어오는 인자 만큼 배열을 동적할당해주려고 합니다.
Room 클래스의 멤버 포인터 place를 이용하여 place 클래스의 성분에 대해 작업을 하려고 하는데, 초보자인 제 눈에도 여간 꺼림칙하네요;;

1. 저렇게 생성자 내에서 클래스 멤버 포인터를 동적할당할 경우, 일단 예외가 발생하지않는다면 메모리가 떠버리는 일은 없다고 생각하는데, 그렇다고 해도 저렇게 방치해도 될까요??

creatorJinsang의 이미지

클래스의 멤버로서 포인터 멤버를 가질 경우에 질문좀여!

class Room{
private:
        Place* place;
public:
        Room(const int& size);
};
 
Room::Room(const int& size){
	place = new Place[size];	
}

위와 같이 Room 클래스의 복사 생성자를 형성해서 넘어오는 인자 만큼 배열을 동적할당해주려고 합니다.
Room 클래스의 멤버 포인터 place를 이용하여 place 클래스의 성분에 대해 작업을 하려고 하는데, 초보자인 제 눈에도 여간 꺼림칙하네요;;

1. 저렇게 생성자 내에서 클래스 멤버 포인터를 동적할당할 경우, 일단 예외가 발생하지않는다면 메모리가 떠버리는 일은 없다고 생각하는데, 그렇다고 해도 저렇게 방치해도 될까요??

ksc4042의 이미지

TCP 송수신 관련하여 질문이 있습니다.

안녕하세요.

이번에 리눅스 커널을 처음 만저보는 초보입니다.

이번 프로젝트에서 TCP 헤더 아래에 제가 만드는 헤더를 빌드하여 사용하고 싶습니다.

이를 위하여 struct sk_buff(include/linux/skbuff.h)에 저희가 사용할 헤더를 지정하는 변수를 정의했습니다.

interoasis의 이미지

[초보] ncurses에서 메뉴 라이브러리나 폼 라이브러리를 사용할때 한글 사용법

ncurses를 이번에 접하고 공부하고 있는 학생입니다.
보통의 ncurses환경에서 한글 사용법은 http://kldp.org/node/59797 링크를 통해 알게됐는데요.

이 방법은 메뉴 라이브러리를 사용할때는 적용되지 않는것 같습니다.
아예 해당스트링이 출력자체가 안되네요.
menu.h를 쓸때 한글 출력하는 법을 알 수 있을까요?

페이지

프로그래밍 QnA 구독하기