프로그래밍 QnA

pok의 이미지

인스턴스 생성시 스택생성

삽질하다가 만든 쓸모없는 삽질코드입니다.

class Iterator {
	public:
		Iterator(){Pcb aPcb_;}
		void setIterator(Queue* _pQueue){aPcb_ = *(_pQueue->getHead());}
		bool valid(){return aPcb_.next != NULL;}
		void next(){if(aPcb_.next != NULL){aPcb_ = *(aPcb_.next);}}
		Pcb* getIt(){return &aPcb_;}
	private:
		Pcb aPcb_;
};

컴파일은 문제없는데 메모리검사 해보면
Quote:
setIterator(Queue* _pQueue){aPcb_ = *(_pQueue->getHead());}

shiefra의 이미지

커널 모듈 프로그래밍에서 파일 입출력

이번에 커널프로그래밍을 공부하기 시작했습니다.

일반적인 C 프로그래밍과는 다른 점이 많아서 조금 어렵네요.

궁금한것은, 커널 모듈 프로그램에서 하드디스크에 있는 텍스트파일을

읽어올 수 있는 방법이 무엇인가? 하는 점입니다.

일반적인 C 프로그래밍에서 쓰던 라이브러리는 당연히 못쓸테고,

웹에서 얻은 자료를 보면 디바이스 드라이버를 통해 입출력을 할 수 있다고

하는데요. 그럼 하드디스크에 대한 디바이스 드라이버가 있을테고

hyji의 이미지

iptables ping

공유기의 IP가 61.61.61.61(192.168.0.1)이고, 공유기 밑으로 192.168.0.77이란 넘이 있습니다.

제가 하고 싶은 건 외부에서는 공유기와 내부 네트웍에 접근을 못하지만, 공유기에서는 내부 네트웍을 제어하고 싶습니다.

그래서 제가 생각한대로
iptables -A INPUT -i eth0 -s 61.61.61.61 -j ACCEPT
iptables -A INPUT -i eth1 -s 192.168.0.1 -j ACCEPT
iptables -A INPUT -i lo -s 127.0.0.1 -j ACCEPT
iptables -A INPUT -s 0.0.0.0/0 -j DROP
이렇게 해주었습니다.

그랬더니만 공유기에서 127.0.0.1로 ping을 때리면 잘 가는데, 192.168.0.1이나 61.61.61.61로 ping을 때리거나 내부의 192.168.0.77로 때리면 안갑니다.

uamyd5279의 이미지

make 할때 오류나 warning이 뜰 경우에만 파일로 남기고 싶습니다

안녕하세요. lanian이 되고 싶은 아직 어린 프로그래머입니다.

[uamyd@myhome]$make > /dev/null

위에 처럼하면...
오류 ......같은 거( warning의 경우는...아직 확인을 못해서요 ..^^ ;; )
나올 때만 화면에 출력이 되잖아요.

그걸 파일로 남기고 싶습니다.
그러니까, 명령어 라인으로 설명을 하자면
[uamyd@myhome]$make > /dev/null > mkerr_log.txt
이런 식이 되겠네요.
물론 위의 명령어는 작동은 되지만, 모든 로그가 남습니다.

moonzoo의 이미지

doxygen에서 함수에 주석달 때에..

예를 들어

a.h에 다음과 같이 함수를 선언하고 주석을 달았습니다.

///@brief 출력함수.
///@param num 출력할 숫자.
///@return 성공시 : 0, 실패시 : -1
int foo(int num);

그러면 foo.c에 다음과 같은 구현부가 있을때에

int foo(int num)
{
	실제 구현;
}

foo.c에 구현된 int foo(int num)부분에도

a.h에 써놓은 주석이 doxygen상에서..

링크되게 하려면 어떻게 해야하나요?

puaxx의 이미지

이거 제대로 구현된거 맞나요?

http://rational.co.za/libbitap/

정규식 관련 소스라는데...bitap알고리즘을 사용한? --;; 첨들어보는 알고리즘이에요...

소스가 간단해서 정규식 라이브러리 만드는데 참고좀 할까 싶어 받아서 테스트 해보니 --;; 테스트 결과가 좀 이상하네요..

아무래도 제대로 구현된건 아닌듯 싶죠?

theone3의 이미지

function을 argument로 넘기기

어제에 이어서 다른 질문 올라갑니다. 물론 어제의 문제도 해결한 것은 아닙니다만....

[code:1]
#include <iostream>
#include <pthread.h>

using namespace std;

typedef struct passing{
int input;
char in_string[128];
int output;
} passing;

int thread_api(void *(*func)(void *));
void* do_my_work(void * arg);

int main(int argc, char * argv[])
{
passing main_pass;
main_pass.input = 1111;
sprintf(main_pass.in_string, "%s", "ABCDEF");

pok의 이미지

여러개를 forking하려 할때.

스크립트를 읽어와 스크립트 개수대로 forking을 하려합니다.
[code:1]
pid_t afterForkPid = fork();
if (afterForkPid > 0){
if (argc != 2){printf("Please Check the parameter\n");exit(1);}
lineNum = getLineNum(argv[1]);
forkIndex = (pid_t*)malloc(sizeof(pid_t) * lineNum);
forkIndex[0] = afterForkPid;
for(int a=1; a < lineNum; a++){ //이미 한번 포킹 되었으니까 하나 적게 포킹.
afterForkPid = fork();
if (afterForkPid == 0){free(forkIndex);break;}//자식 프로세스는 여기서 바로 나가기

lovethecorners의 이미지

바보 같은 질문 드립니다 - 정규표현식

예를 들어서

$150,00.00
$25,000.00
$5,000.00
.
.
.

이런한 값들이 있을때 $ 만빼고 값을 비교하려합니다. 정규표현식에서 $ 를 어떻게 처리해야 하나요?

iimec2의 이미지

le32_to_cpu 매크로함수, typedef 등등

질문 1.
/* Definitions Related to Chip Address and CPU Physical Address *****************************
* cpu_phy_add: CPU Physical Address , it uses 32 bit data per address
* chip_add : Chip Address, it uses double word(64) bit data per address
*/

#define chip_add(cpu_phy_add) (cpu_phy_add-0x400)/8
#define cpu_phy_add(chip_add) (8*chip_add)+0x400

이게 사용가능 한가요?? Chip_add가 cpu_phy_add를 사용하면 cpu_phy_add()함수가 호출 되는지.. 위에 예에서 처럼 매크로 인자가 없다면 인자가 없는 위의 방식은 어떻게 되는건지요? 너무 쉬운거라면 죄송합니다.ㅇ..

페이지

프로그래밍 QnA 구독하기