프로그래밍 QnA

ksl6424의 이미지

[완료]컴공 꼬꼬마가 선배님들께 여쭙니다.

안녕하세요! 4년제 컴공 2학년을 다니고 있는 꼬꼬마입니다.
여기저기 열심히 찾아봤지만 성과가 없어 선배님들의 작은 관심이 필요해 왔습니다.
자료구조를 충분히 이용한 프로그램을 만드는 프로젝트인데
저희는 구조체와 트리를 이용해 여행친구찾기 프로그램을 만드려합니다. (B트리, AVL트리는 안배웠고 그냥 트리이용할 생각입니다.)
가장 메인 기능이 "조건검색"인데요. 같은 목적지나 같은 연령대를 검색할수있게 하려고 머리를 쥐어짜서
첨부한 그림같은 노드가 나오게 되었는데요.
이름, 목적지, 연령대는 조건검색을 위해 KEY값으로 쓰려고 노드에 포함시켰고,
나머지 검색에 쓰이지 않는 정보들(프로필,취미,학교)등은 주소를 저장해 원하면 가져올수 있게...하는게 제 의도인데..
과연 이게 말이되는것인지,구현가능한건지 선배님들께 여쭙고자 글올립니다.
아님 더 좋은 방법이 있을까요? 조언부탁드립니다.

zikpreed의 이미지

select() > 0 인데, recv() < 0 - 어떤 경우에?

일반적인 TCP 소켓 프로그램에서 제목처럼

select() > 0 인데, recv() < 0 인 경우가 어떤 때 나오는지 궁금해서 질문드립니다.

RTSP 클라이언트 프로그램을 작성중인데요,

소켓에서 한 바이트씩 읽어서 /r/n/r/n이 나올 때까지 읽는 프로그램입니다.

소켓 옵션은 특별히 주지 않았구요. 그러니까 blocked socket 이네요.

뭐 이건 non-block 소켓으로도 바꿔 보고 이것저것 해 봤습니다.

아래 소스에서 block_until_readable()의 결과 값이 > 0 (그러니까... select() > 0) 인데,

recv() < 0 이어서

perror("Fail to recv :");

라인에 걸리는 경우가 있습니다.

errno = 104 (ECONNRESET - Connection reset by peer)

라고 나오는군요.

원래대로라면

chasin의 이미지

최근 프로그래밍 도중 아주 이상한 현상을 경험했습니다.

그림에 표현된 부분에서 파일을 아주 많이 읽고 닫고를 반복합니다. 물론 다 다른 파일입니다.
또한 동시에 수백 개를 여는 것은 아닙니다.

근데, 이 부분에서 파일 오픈 횟수가 489번째 되면 프로그램이 while 부분에서 아무런 메세지
출력없이 죽어버립니다.

그래서 제가 if(TFN>488)이란 구문을 일부러 넣었습니다. 488번째까지 이상없이 실행되는 것을 보면
이 함수 부분에서 별 다른 문제는 없어보입니다.

이 화일들외에 프로그램의 다른 부분에서 임시 파일 포함하여 대충 10개 정도 열려 있는 걸 포함하면
gcc에서 처리할 수 있는 파일 갯수에 제한이 있는 건가요?(동시에 오픈할 수 있는 파일 갯수가 아님)

동시에 오픈할 수 있는 파일 갯수는 헤드파일에서 변경하여 컴파일 할 정도는 됩니다.

대충 500개 정도가 limit(동시에 오픈할 수 있는 파일 갯수를 말하는 게 아님) 같은데, 확실히 알 수가 없네요.
Head file 찾아봐도 이런 변수는 정의된 게 없는 거 같고요.

ydgvnk70의 이미지

주석에 보면 //이곳은 시리얼로부터 데이터를 수신했을 때 부분-->ListenfromSerial함수호출하여 사용하면 될까요?[센서네트워크]

#include
#include
#include
#include
#include "tdef.h"
#include "ttype.h"
//시리얼 통신 관련 헤더파일
#include
#include
#include
#define TOSH_DATA_LENGTH 33
#define BAUDRATE B57600
#define MODEMDEVICE "/dev/ttyS2"

#define TOSH_DATA_LENGTH 33

muzie의 이미지

detached pthread의 스택반환.

멀티쓰레드 네트워크 프로그램 작성중에 있습니다.
이벤트가 뜰때마다 detached 처리 된 pthread가 하나씩 생성되는데 이 쓰레드에선 일이 끝나면 return NULL 하고 종료합니다.
그런데 메모리 사용량을 봤더니 pthread가 하나 생성될때마다 vmsize가 8메가씩 증가(pthread stack size인듯)합니다.
그리고 쓰레드가 종료되고 줄지 않는군요.
pthread_exit를 부르지 않아서 생기는 문제인가요(?)

// 현재 임베디드 환경에서 작업중인데 pthread_exit를 부르면 프로그램이 죽어버리는 문제가 있습니다. 그래서 테스트가 안되는군요 -_-;

josimhaela의 이미지

md5sum 값을 바꾸는 방법이 있을까여 ?

bin 파일 내의 어떠한 파일의

소스코드를 바꿔서 그걸로 덮어씌우려고 하는데

md5sum 값이 다르면 오작동을 할것 같아서여 ..

kieslv의 이미지

드라이버 모듈 설치 방법 - 반영구적?

안녕하세요. 리눅스의 무서운 매력에 빠져 열심히 공부하고 있는 학생입니다.

간단한 디바이스 드라이버 모듈을 작성하여 컴파일하고 insmod로 모듈 설치하고,

lsmod, rmmod로 확인 및 삭제 해보았습니다.

하지만 insmod로 설치를 해도 재부팅을 할 때 마다 insmod를 해줘야 하네요.

윈도우에서 설치 처럼 한번 설치하면 사용자가 제거 하기 전까지 부팅시에 로드되게 하는 방법과
사용자가 원할경우 제거 하는 방법은 어떻게 해야 할까요...

< 책도, 인터넷도 참고하기가 어렵네요. 이제 막 공부를 시작하는 완전 초보로써
참고 하여 공부할수 있는 길을 알려주세요~~~ ㅠㅠ >

dorado2의 이미지

embedded 환경에서 root 권한 사용에 제약이 있는 경우 어떤 방식을 사용하시나요?


임베디드 환경 개발 관련 질문입니다.

이전에는 별다른 제약 사항이 없어서, root로 모든 작업이 다 진행되었습니다.
부팅한 후에 이것저것 mount하고, app 실행하고, shell 작업도 그렇구요.
App 내에서도 dev 접근 및 mount 다 했었고, 그 외 여러 작업을 했었습니다.

(shell은 제품 출시시에는 막았고, 이 외에도 보안 장치가 몇가지 더 있었습니다만).

이번 작업의 경우 security 요구 사양이 높아져서, root 권한 없이는 임의로 dev 파일 접근도 못하고,
mount도 맘대로 못하고, app마다 특정 권한이 있는 경우에 해당 작업을 하게 되어 있습니다.

sudo, chroot 등을 뒤져보고 있는데요...

특정 작업에 sudo 를 쓰는 경우, terminal로 passwd를 입력해줄 수 없기 때문에
passwd를 사용하지 않도록 해야 할 것 같은데, 이게 가능은 한 것 같은데 이렇게 사용하는 경우가 일반적인지요?

speedwall의 이미지

[완료]특정 사용자의 접속을 redirection 시키려고 합니다.

고민해서 해결했습니다

답글은 아무도 안달아 주셨지만

한번정도 이 글을 클릭해 주신분들 감사합니다

trymp의 이미지

netfilter 에서 NF_QUEUE 를 활용하는 방법 좀 알려주세요.

리눅스 netfilter 에서 NF_QUEUE 의 용도가 user application 에서

패킷을 보거나 처리할 수 있다고 나와 있는데요.

NF_QUEUE 로 return 하거나 iptable 로 action 처리를 했을 때,

그 skb 를 어떻게 user space 로 올릴 수 있나요?

큐잉을 한다고 하는데, 그 큐구조가 정확히 무었을 말하는지 모르겠습니다.

NF_QUEUE 를 사용한 경우 어떻게 user applicatoin 에서 처리가 가능한지

방법 좀 알려주시면 감사하겠습니다.

페이지

프로그래밍 QnA 구독하기