프로그래밍 QnA

puaxx의 이미지

Perl에서 HTML TAG를 Strip할수 있는 완벽한 정규 표현식이 없을까요?

상황
1.몇백만건의 HTML데이터가 있고 내용은 일정치 않습니다.
2.Perl의 확장 모듈을 사용할수가 없습니다.
3.많은 시간이 없습니다.
4.정규식이나 직접코드를 짜야 합니다.

현재 제가 생각한 정규식은 고작

<\/?[!a-zA-Z][^>]*>

이건데요...가령

<a href="sdfsf?sdfkkk=>&xxvfd">

이런식으로 들어간게 있으면 제대로 안될거 같더군요.

정규식만으로 불가능할까요?

puaxx의 이미지

쉘상에서 프로그램 실행하고 종료 한뒤의 리턴값

쉘상에서 프로그램 실행하고 종료 한뒤의 리턴값을 알고 싶은데 어떻게 알아낼수 잇나요?

maner07의 이미지

현재 설치된 커널 소스는 어디에 저장되나요? (페도라 코어4)

현재 설된 커널의 소스 코드가 어디있는지 궁금합니다.
보통 /usr/src/에 존재 하는 것으로 알고 있었는데요.
제가 설치할때 "워크스테이션"옵션에 그놈 대신 KDE를
설치 했거든요. 근데 해당 폴더에 가보니깐 소스는 안
보이고 "2.6.14-1.1653_FC4-smp-i686" 요 폴더만 보디
이더군요. 근데 안에 가보니깐 소스 코드는 없고요.
아, 참 그리고 저기서 smp의 의미는 무엇인가요?
궁금합니다. 만약에 소스코드가 포함된 것이 아니라면
따로 다운 받아서 그곳에 놓고 써도 되는 건가요?

jungjury의 이미지

getchar()로 입력받을시 char c가 아닌 int c가 사용되는 이유는?

#include <stdio.h>

main() 
{
  int c;
  
  c = getchar();
  
  while ( c != EOF ){
        putchar(c);
        c=getchar();
        }
}

unsigned char c로 정의한 경우 EOF(=^Z)가 입력된 경우
무한루프에 빠지는데..

(signed) char c로 정의한 경우 나 int c로 정의한 경우에는
똑같이 ^Z입력시 루프가 종료됩니다...

반드시 int c로 getchar의 리턴값을 받아야 한다는
C programming FAQs의 내용(12.1)가 차이가 나는 것같아 헷갈립니다..

eminency의 이미지

A?B:C 를 많이 쓰시는지요...?

C에서의 유일한 3항 연산자인 '?:'에 대한 질문입니다.

사실 저는 다른 사람(회사 내의..)에 비해 많이 쓰는 편입니다만...
사실 막상 쓸 일은 자주 없는 것 같더군요 -_-;

대개 다음의 경우에 저는 씁니다만...

if (A)
{
  c = 1;
}
else
{
  c = 0;
}

c = A ? 1 : 0;

이런 경우 외에는 아주 없진 않지만 사실 거의 없었던 것 같습니다.
특별히 이 연산자를 활용하는 테크닉이나 쓰여야만 할 경우가 있는지 궁금하군요.

ero의 이미지

이 소스좀 봐주세여 이상하게 안되네~

#include<stdio.h>
int main()
{
struct TEMP{
char *p;
}aa[2];

int ch;
int i=0;
char temp[10]="abcdefg";

aa[0].p=temp;
for(i=0;i<10;i++) temp[i]='\0';

i=0;
while((ch=getchar())!=10)
{
temp[i++]=ch;
}

aa[1].p=temp;

printf("%s\n",aa[0].p);
printf("%s\n",aa[1].p);

sypark33의 이미지

switch vs if 어떤 때 어느게 효율적인가요?

저는 조건문이 4개 이하이면 그냥 if, else if 로 하고, 그 이상이면 switch case 문을 사용하고 있습니다.

그냥 짧은 것은 switch문 쓰면 너무 소스가 길어져서..

그런데, 어떤게 어느때 사용해야 제대로 사용하는것인지 알고 싶더군요.
얼핏 들어본 기억으로는 ,
1. if문은 매번 조건문을 판단해야 하기에 switch문보다 느리다.
2. switch문은 case문 선별에 있에 stack에 값을 놓고 비교하기에, 느릴 수 있다..

뭐 이렇게 기억되는데 맞나요? embeded쪽이라 효율

mailbox20의 이미지

define 사용중 질문 있습니다.

아래 코드가 제가 이해가 안가는 부분 입니다.
함수를 define선언해서 사용하는것은 알고 있습니다.

그런데 아래 코드를 보면, 선언문 오른쪽 { }로 쌓여 있는 부분에서
"\"과 ";"이 들어가는 의미를 모르겠습니다.

===========================================
#define CmDiscoveryReqSend(_p,_m,_t,_i,_n) {\
CM_DISCOVERY_REQ_T *msg__;\
msg__=CmDiscoveryReq_struct(_p,_m,_t,_i,_n);\
bchs_msg_transport(CM_IFACEQUEUE,CM_PRIM, msg__);}
===========================================

그럼 모두들 좋은 하루 되시길~

kuaaan의 이미지

멀티쓰레드 환경에서의 디버깅.. 어떻게 하시나요?

제목 그대로입니다.
멀티쓰레딩 프로그램의 디버깅... 참 어렵네요.
쓰레드 ID를 파일이름으로 하여 로깅을 걸어보기도 하고...

멀티쓰레드가 아닌 경우엔 GDB를 아주 유용하게 사용하고 있는데여...
GDB로 멀티쓰레딩을 돌리다 보면 자꾸 포커스가 옮겨가서 죽겠습니다. -_-;;
포커스 옮겨갈때마다 쫓아가던 쓰레드로 스위칭시키는 것도 한두번이지...

혹시 GDB에 특정 쓰레드만 쫓아가면서 디버깅할수 있는... 그런 기능 없나요?
있을것도 같은데... 찾아봐도 잘 안나오네요...

superkkt의 이미지

max 값을 구하는 매크로가 원하는대로 작동이 안되네요..

#define MAX(A, B)	((A) > (B)) ? (A) : (B)

maxfp = MAX(sockfd, fileno(fp)) + 1;

위에서 sockfd는 7이고 fileno(fp)는 0의 값을 가지고 들어갑니다. 원하는대로라면 maxfp가 8이되야하는데 계속 7로 나오네요. 매크로가 틀린건가요?

페이지

프로그래밍 QnA 구독하기