프로그래밍 QnA

ljh30633의 이미지

동적할당이 된 문자열 sprintf로 복사후에

char *test(char *dirpath){
char *dir;
char *tmpdir;

asprintf(&dir, "%s", dirpath);

sprintf(tmpdir, "%s", dir);

free(dir);

return tmpdir;
}

예를 들어 다음과 같은 코드가 있다고 할때, asprintf함수는 내부적으로 동적 할당을 한다고 들었습니다. 그래서 사용후엔 free를 해주어야 하구요

동적할당했던 dir의 내용을 sprintf를 사용해 tmpdir 포인터 변수에 썼을 경우에

tmpdir 변수도 따로 free를 해주어야 하나요??

dir = tmpdir 이런식으로 되었을 경우에는 tmpdir을 받은 dir을 해제해주어야 하는 걸로 알고 있는데

sprintf를 사용하여 쓰기를 하였을 경우에는 어떻게 해야 하는지 했갈리네요 ㅠ

ktkmyfeeling의 이미지

arp packet 을 구성해서sendto로 전송이 가능한가요?

책과 인터넷을 보고서 arp packet을 구성하여 sendto로 하여 packet 값을 전송하려고 합니다.

socket을 사용하고 있구요

socket(PF_INET, SOCK_RAW, IPPROTO_IP) 식으로 소켓을 구성하였습니다.

packet 값 역시

arphdr과 ether_arp에 자료를 저장하였구요

setsockopt(sd, IPPROTO_IP, IP_HDRINCL, &sasend, sizeof(sasend));

식으로 setsockopt를 지정하였습니다.

물론 setsockopt(sd, SOL_SOCKET, SO_BROADCAST, &sasend, sizeof(sasend));
요러게도 해봤구요.

linux가 안돼어서 unix로만 짜려구 하는데 자꾸 헛다리 짚는 듯한 기분도 들고 해서

이렇게 글 올립니다.

soul_159의 이미지

비동기 소켓 통신 구현시 쓰레드 추가 없이 다른작업 돌면서 접속 체크하는 방법 없을까요?

안녕하세요.

비동기 소켓을 사용하여 소켓 구현을 하려고 합니다.

그런데 주 가 소켓통신이 아니라 다른작업이 작업을 돌면서 connect 요청이 있을때 세션을 맺고

기존 작업의 틀을 바꾸는 작업을 하려고 합니다.

소켓 통신쪽 쓰레드로 빼면 문제가 없으나 쓰레드 추가없이 작업을 하고 싶습니다.

질문의 요지는 . 프로그램 init때 소켓을 정의하고 다른 루틴을 돌다가 connect 요청 감지가 되면 세션을 맺고
주 작업의 루틴을 변경하려고 합니다. 주 작업의 루틴은 세션이 되면 플래그로 변경을 하면되는거라 문제가 없는데
connect 감지를 할 수 있는 방법을...
소켓이 열려있고 포트가 listen 되어 있기 때문에 conn 요청만 오면 connect관련
handling 함수로 뛰도록 할 수 있을거 같은데..(signal처럼)
답변 기다리도록 하겠습니다.

rymuff의 이미지

Operator= Overload 관련 질문

연산자= 오버로드를 통해

Flaction a;
int b;

변수 사이
a=b;
b=a;
가 가능하게 하고싶습니다.

아래와 같이 코드를 짜니
아래와 같은 에러가 발생했습니다.

static선언이나 friend같은 방법을 사용해봤지만 불가능하네요.
혹시 해결방법을 아시나요?

Flaction.h

class Flaction
{
	int c, m;
 
public: 
	...
 
	Flaction& operator =(const int& b);
	int& operator =(const Flaction& b);
 
	...
}

Flaction.cpp

cleansugar의 이미지

이벤트나 콜백은 순서도를 어떻게 그리는 건가요?

이벤트나 콜백은 순서도를 어떻게 그리는 건가요?

루프 돌려서 그리는 방법 말고 이벤트나 콜백을 순서도에서 선택할 수 있는 방법이 있나요?

UML에는 그런 기능이 있나요?

housemania2의 이미지

uboot의 function 을 외부 바이너리에서 실행하려고하는데..

제목그대로 uboot에 function 을 외부 바이너리에서 실행하려고하는데요

global_data gd_t jt 부분에 function 등록하고 외부 바이너리에서 function을 사용하려고하는데
이 function의 메모리 주소를 알수있는방법이있을까요?

예로 외부 바이너리에서는
Struct {
int (*test)();
…
} ubtfun;

ubtfun* ufs = (ubtfun*)0x3000_0000; // uboot gd_t jt address
ufs->test();

위방법으로 사용하려합니다.
혹은 다른 방법에 대해 경험있으시거나 아시는분 답변 부탁드립니다~

canuyes의 이미지

red black tree의 원리에 관해서...

국내 베스트 셀러인 모 서적으로 red black tree를 공부중에 있습니다.
코드 구현은 이해 하였지만 red black tree의 원리를 이해 하지 못해서 질문 올립니다.
구글링해 보앗지만 모두 코드 구현에만 초점이 맞추어져 있고 원리에 대한 설명을 찾아 볼 수 없었습니다.
red black tree 규칙의 도입이 어째서 binary tree의 기형적인 성장을 막아주는지 알고 싶습니다.

관련 링크나 참고해 볼 수 있는 서적 추천 부탁드립니다.

rpit1412의 이미지

java socket통신에서 client interface를 선택하게 할수있나요?


노트북에 유선랜도 연결되어있고 무선랜으로 공유기 와이파이까지 잡혀있는 상태입니다.
유선과 무선은 다른 네트워크 망이구요

여기서 소켓통신을 하려고할때 원하는 인터페이스를 선택할 수 있게 하는 방법이 있나요?
자바 프로그래밍으로요..

구체적인 조언 부탁드립니다

vinky7의 이미지

도움좀 요청 드립니다 ㅜㅜ

안녕하세요

리눅스 서버 관리를 허겁지겁 맡게 되었는데요.

앤드유저가 일일점검 스크립트를 만들어 내라고 하는데 정말 막막합니다 ㅜㅡ

도움을 요청드립니다 ㅜㅜ

tjswo507의 이미지

리눅스 .so 파일관련 질문입니다.

리눅스에서 .cpp 파일을 컴파일해서 .so파일을 생성할려고 하는데 어떻게 컴파일 해야하는지 잘 모르겠네요.. 쫌 도와주셨으면 합니다.

페이지

프로그래밍 QnA 구독하기