프로그래밍 QnA

zzang3757의 이미지

linux socket write, socket disconnect event


소켓 전송, 연결 끊어졌을때 발생하는 이벤트에 관련하여 질문 드립니다..

끊어진 소켓에 write 를 하면 -1을 리턴하죠,, 근데 끊어진 소켓에 write 를 하는데 -1을 리턴하지 않고

계속 전송시도한 바이트만큼 리턴을 합니다..

혹시 소켓 설정 관련된 뭔가가있나요..?

서버는 리눅스를 쓰는데,, 클라이언트는 안드로이드 입니다..

핸드폰을 꺼버려도 epoll 에서 끊어졋다는 이벤트가 따로 없네요..ㅠ

inviolable의 이미지

#define문 해석 좀 부탁드립니다.

리눅스 signal함수 정의 : void(*signal(int signo, void(*func)(int)))(int);

이해 되시죠??? signal함수는 int형을 인수로 가지고 void를 리턴하고 2개의 인수(signo, 신호 처리부 함수 포인터)를 갖는 함수 포인터를 리턴하는 함수입니다(void* 을 리턴하는게 아니라 void를 리턴, *는 함수 포인터라는 의미의 선언임 포인터 선언시 int *p = &a; 이렇게 하듯이).

이 함수 포인터 2번째 인수로(void(*func)(int)인수) SIG_IGN상수나 SIG_DFL상수를 넣을 수 있는데 이 상수의 정의가 다음과 같습니다(헤더 파일에 정의)

#define SIG_DFL(void(*)())0
#define SIG_IGN(void(*)())1

이 두 #define문이 이해가 안갑니다.

보통 #define문처럼 #define a b 이런식으로 되어있지도 않고 해서... 설명 좀 부탁드립니다.

inviolable의 이미지

리눅스에서 로그인 쉘을 실행할 때 argv[0]에 -를 생략해도 되나요???

책 281p에는 이런 설명이 있습니다 :

(exec함수에 대한 설명 중, execl이나 execle처럼 l이 들어있는 exec함수는 첫번째 인수로 경로 이름을 받고 두번째 인수로 argv[0]을 받습니다.) 실제로 login은 하나의 대시(-)를 argv[0]의 접두어로 추가한 후에 셀을 실행한다. 이러면 셀은 자신이 하나의 로그인 셀로서 실행됨을 인식하고 시동 프로파일(start-up profile) 명령들을 실행한다.

책 313p에는 이런 설명이 있습니다 :

사용자가 이름을 입력하면 getty의 작업이 끝난다. 이제 getty는 다음에 해당하는 방식으로 login을 실행한다.
execle("/bin/login","login","-p",username,(char*)0,envp);

책 281페이지 설명대로라면 login실행시 argv[0](2번째 인수)에 접두어에 -가 붙어야 되는 것 아닌지요???

l77jk의 이미지

암호화 알고리즘 MD5에서 SHA512로 교체방법 문의 드립니다.

버전
$uname -a
Linux webhard 2.6.18-53.e15#1 SMP Web Oct 10 16:34:02 EDT 2007 i686 i686 i386 NU/Linux

현재 암호화 알고리즘이 MD5이구요.

SHA512 암호화 알고리즘으로 변경하려고 합니다.

$authconfig --passalgo=sha512 --update

error message
:authconfig : error : no such option : --passalgo

passalgo 라는 옵션이 없다고 나오내요.

$authconfig 라고 치고 옵션을 보면

암호화 알고리즘에 해당하는 옵션은 MD5 ENABLE에 대한 옵션뿐이 없는듯합니다.

이커널에서는 지원을 하지않는건지...

$yum install authconfig 패키지를 설치해도 같은 메세지가 나옵니다.

gksendbs의 이미지

우분투 시리얼 통신 질문입니다.

아래 글이 수정이 안되서 다시 올립니다.ㅜㅜ

디바이스는 안드로이드기기인데 리눅스를 깔아놨구요

장치명은 ttyUSB0입니다.

그냥 이 디바이스로부터 들어오는 데이터를 읽기만 하면 됩니다.

그래서 저는 시리얼로 기기에서 보내는 데이터를 받고 싶은데

컴파일되고 실행도 되는데 실행하면 아무것도 뜨지 않습니다.

가만히 기다리면 segmentation fault가 뜹니다.

고수님들 도와주세요.ㅜㅜ

gksendbs의 이미지

리눅스 시리얼 통신 중입니다.

디바이스는 안드로이드기기인데 리눅스를 깔아놨구요

장치명은 ttyUSB0입니다.

그냥 이 디바이스로부터 들어오는 데이터를 읽기만 하면 됩니다.

그래서 저는 시리얼로 기기에서 보내는 데이터를 받고 싶은데

컴파일되고 실행도 되는데 실행하면 아무것도 뜨지 않습니다.

가만히 기다리면 segmentation fault가 뜹니다.

고수님들 도와주세요.ㅜㅜ

vein10th의 이미지

LLVM을 Linux나 MacOS외의 다른 장비에서 빌드해보신분 계신가요?

최근에 컴파일러를 공부하면서 LLVM에 대해서 관심을 갖게 되었는데요..

LLVM의 홈페이지를 보니, LINUX이외에 AIX나 HP, SOLARIS에서도 되는 것처럼되어 있습니다만.

HP장비를 사용할 기회가 생겨서 가장 최신 릴리즈인 LLVM 3.1 소스를 설치해서 빌드하려고 하는데

configure하는 과정에서 unknown architecture(?)인가 하면서 설치가 안되네요..

확인해보니, 2.5까지는 IA64를 지원하는데, 2.6부터는 지원하는 말이 없네요..

(제 개인적인 생각으로는 2.6부터 CLANG이 나오면서 그런거 같은데, 왠지 Apple에서 LLVM을 지원다보니 그런거 같기도 하고)

혹시, 실제로, LINUX나 MacOS이외에 HP나 AIX, SOLARIS에서 빌드해보신분 계신가요?

khnet의 이미지

리눅스에서 만든 프로그램을 x윈도우에서 클릭으로 실행하려면 어떻게 해야 하나요?

gcc로 컴파일해서 만든 실행파일을 x윈도우상에서 클릭으로 실행할 수 있는 방법 없나요?
아니면 클릭으로 실행가능한 파일을 만드는 다른 방법이 따로 있는 건가요?
있다면 그 방법 좀 가르쳐주시면 감사드릴께요^^;

페이지

프로그래밍 QnA 구독하기