프로그래밍 QnA

zosowo의 이미지

getopt() 쓸때 옵션이 없을때는 어떻게 처리해야하죠?

int main(argc, char *argv[]) {
int n;

while((n = getopt(argc, argv, "au")) != -1) {
switch(n) {

case 'a' :
printf("a");
break;

case 'u' :
printf("u");
break;

default :
printf("옵션에러");
break;
}
}

대충이렇게 짜면요, 옵션이 없는 경우에는 어떻게 표현해야하나요?

default가 옵션 없을때 인줄 알았는데, 옵션을 잘못썼을때 출력되네요 ㅠㅠ

옵션없이 치면, 아무 반응도 없고 아무화면도 나타나질않네요.

zosowo의 이미지

getopt() 쓸때 옵션이 없을때는 어떻게 처리해야하죠?

int main(argc, char *argv[]) {
int n;

while((n = getopt(argc, argv, "au")) != -1) {
switch(n) {

case 'a' :
printf("a");
break;

case 'u' :
printf("u");
break;

default :
printf("옵션에러");
break;
}
}

대충이렇게 짜면요, 옵션이 없는 경우에는 어떻게 표현해야하나요?

default가 옵션 없을때 인줄 알았는데, 옵션을 잘못썼을때 출력되네요 ㅠㅠ

옵션없이 치면, 아무 반응도 없고 아무화면도 나타나질않네요.

zosowo의 이미지

텍스트파일안에 있는 문자열을 버퍼에 저장하고 싶습니다.

텍스트 파일 안에 내용입니다.

1 (init) S 0 1 1 0 -1 4194560 1597 347511 89 1336 0 428 7109 3736 20 0 1 0 5 2056192 134
4294967295 134512640 134636520 3218157984 3218157132 1115158 0 0 4096 671835171 0 0 0 0 0 0 0 461 0 0

위의 텍스트파일을 C파일에서 불러와서,

버퍼에 저장하고 싶습니다.

저장한 후에, 버퍼안의 내용을 공백을 기준으로 자른후에, 구조체 각 변수에 넣고 싶어서요!

어떤함수를 써야하고, 버퍼크기를 얼마나 잡아야할까요?

코드 도움좀 부탁드립니다!

victoryz12의 이미지

c++ 파일입출력에 대해서 여쭈어봅니다.

다음과 같은 내용의 "hello.txt"라는 텍스트 파일이 있습니다.

zosowo의 이미지

텍스트파일안에 있는 문자열을 저장하고 싶어요.

<첫번째 질문>

리눅스 /proc/[PID]/stat 텍스트파일 내에는

1 (init) S 0 1 1 0 -1 4194560 1597 347511 89 1336 0 428 7109 3736 20 0 1 0 5 2056192 134
4294967295 134512640 134636520 3218157984 3218157132 1115158 0 0 4096 671835171 0 0 0 0 0 0 0 461 0 0

이런식으로 숫자가 적혀있습니다. 위 파일은 init 프로세스의 정보이고, 리눅스 /proc/1/stat 안의 내용입니다.
stat 파일안에 있는 저 내용들은 공백 " " 을 기준으로 구분되어있습니다.
공백을 기준으로 각각을 저장해서 원하는부분을 출력하고 싶습니다.
어찌해야할까요?

-------------------------------------------------------------

<두번째 질문>

count9의 이미지

mss를 넘는 패킷이 오면 받아들이나요?

리눅스 머신에 있는 코드를 삼바 사용해서 윈도우 PC로 작업하고 있는데요.
만들고 있는 커널 모듈로 유입되는 패킷 iphdr->tot_len을 출력해봤는데
mtu 사이즈보다 커서 덤프를 확인했더니 아래와 같더군요. mtu는 양쪽 다 1500입니다.
패킷은 NF_IP_PRE_ROUTING hook에서 전달받은거구요.
아래 mss는 1460인데 실제 보내오는 사이즈는 13140이라고 나와있습니다.
패킷마다 크기가 제각각이긴 한데 잘 모르겠지만 실제 저 사이즈로 통신을 하는것 같습니다.
mss보다 큰 패킷으로 통신하지 않는것으로 알고있는데 어떻게 된건지 궁금합니다.

inamind의 이미지

강제로 error 발생

안녕하세요.

kernel 에서 아직 memory 할당이 안되어
printk 가 동작하지 않는 상태에서 강제로 애러를 발생시켜서 시리얼에 출력하도록 하는
함수나 매크로가 있을까요?

inamind의 이미지

[완료] 왜 동작하지도 못하는 printk 를 사용했을까요?

안녕하세요.
arm 에서 linux kernel을 개발하고 있습니다.

void __init create_mapping(struct map_desc *md)
{

...
printk(KERN_WARNING "BUG: map for 0x%08lx at 0x%08lx can not "
"be mapped using pages, ignoring.\n",
__pfn_to_phys(md->pfn), addr);

...
}

위와 같은 구문이 있는데요. 사실 이 함수가 호출되는 위치는 거의가 메모리가 mapping 이 되지도 않은 시점입니다.
따라서 printk 를 사실상 동작하지 못하게 되는데요.
이런 함수들을 memory mapping 전에 곳곳에서 사용하고 있네요.
왠만하면 serial device 에 direct 로 write 하는 함수를 사용했어야 맞을것 같은데요.
메모리 맵핑전에 printk를 동작시키는 숨겨진 feature 가 있는가요?

mayaabba의 이미지

하둡과 웹페이지의 연동.

Definitive Guide 에 보면 뒤 쪽에 사례연구에 하둡을 이용한 웹페이지가 있던데요

일단 웹페이지는 기본적으로 웹서버가 있어야 구동이 되잖아요.

그럼 하둡이 설치된 여러 클러스터 노드중 어디에 웹 서버를 설치해야 하나요?

도통 이쪽으론 프로그래밍을 해보지 않아서 감이 잘 안오네요.

만약 마스터 노드 한대에 웹서버를 설치하고 접속을 받을 경우 마스터가 고장나고

보조 네임노드가 마스터로 올라오면 자동으로 웹서버랑 부수적인 것들을 셋팅해주나요?

아니면 웹서버 없이 하둡자체에 그런 기능이 있는지요?

웹페이지로 마스터나 슬레이브의 상태를 볼 수 있는 거 보면 자체적으로 웹서버 기능도 가능 할거 같은데...

아....어렵네요..하둡... 좋은 카페좀 알려 주세요....ㅠㅠ 도움 부탁드립니다.

nomail의 이미지

[완료] Vim에서 컬럼 블록 replace가 안됩니다.

안녕하세요.
vim 잘 아시는 분께 질문 좀 드릴게요.
아래 그림처럼 컬럼블록을 잡은 상태에서 블록안의 스페이스를 제거할려고 합니다.

위처럼 컬럼 블록을 잡고 나서

:'<,'>s/\s*//

이렇게 명령을 때렸는데 블록의 스페이스가 제거 안되고 라인 첫번째 컬럼에 있는 스페이스가 제거됩니다.
할 수 없이 에딧플러스로 처리합니다만 할때마다 번잡하네요.. ㅜㅜ
혹시 해결방법 아시는 분 알려주세요. 부탁드립니다.

페이지

프로그래밍 QnA 구독하기