프로그래밍 QnA

rpit1412의 이미지

tcp 또는 udp 패킷 캡쳐 질문입니다.


안드로이드(클라이언트)와 컴퓨터(서버) 간의 소켓통신을 구현했는데

안드로이드에서 tcpdump 로 클라이언트측에서 측정하는거랑
컴퓨터에서 와이어샤크로 서버측에서 측정하는거랑
패킷은 똑같은게 관찰되는거죠?

asleea의 이미지

select함수

somedayhow의 이미지

리눅스 shell 가로 정렬 (세로 정렬 X) 명령어

sort로 세로로 정렬하는것은 찾았는데

가로로 정렬하는건 찾을 수가 없습니다.

그래서 가로로 있는 데이터를 행렬 변환해서 세로로 정렬해볼까 했는데 그것도 못찾겠습니다.

가로 정렬은 직접 프로그램 짜야하나요??

somedayhow의 이미지

linux shell script 경로에 대해서 질문이 있습니다.


시뮬레이션을 반복하다보니 늘어나는 데이터를 감당할 수가 없어서
폴더별로 정리를 해보고 있습니다.
하지만 폴더를 바꿀때마다 실행파일인 start.sh를 수정해야 하는 번거로움이 있어서
좀 편한 방법이 없을까 질문을 해봅니다.

start.sh:

minsubsim의 이미지

fortran 실행관련 질문

fortran으로 짜여진 geant321라는 프로그램의 example을 실행하려고 합니다

소스코드는 아래 경로에 있는 것들과 동일한 내용입니다
http://cernlib.web.cern.ch/cernlib/download/2006_source/src/geant321/examples/gexam1/

관련 라이브러리 (cernlib)도 제대로 설치된것 같아서 직접 실행해 보려고 했습니다

Reper의 이미지

프로세스 마다 할당되는 스택의 주소

현재 버퍼 오버플로우를 공부하고 있습니다.

Reper의 이미지

프로세스마다 할당되는 스택

현재 버퍼 오버플로우를 공부하고 있습니다.

#include
#include

extern char **environ;

main(int argc, char *argv[])
{
char buffer[40];
int i;

if(argc != 2){
printf("argc must be two!\n");
exit(0);
}

for(i=0; environ[i]; i++)
memset(environ[i], 0, strlen(environ[i]));

if(argv[1][47] != '\xbf')
{
printf("stack is still your friend.\n");
exit(0);
}

mandugukbap의 이미지

gethostbyname()에서 DNS 서버 변경

gethostbyname 함수를 호출할 때 /etc/resolv.conf에서 DNS 서버의 주소를 읽어와 사용하는 것으로 알고 있습니다.

이 서버 주소를 제 프로그램 내에서 임의로 바꿀 방법이 있는지요?

ukyoukyo의 이미지

실행중인 명령어가 64비트인지, 32비트인지 어떻게 구별할 수 있을까요 ?



Linux, GCC 환경입니다.

64비트 OS를 설치했구요,

빌드는 32비트, 64비트 각각 개별 실행파일로 되게했습니다.


즉, 하나의 hello.c를 빌드하면 hello32, hello64 실행파일이 각각 만들어 집니다.
( gcc -m32, -m64 옵션을 사용했습니다 )



질문은,

프로그램 실행중에( runtime ) 프로그램 자신이 32비트인지, 64비트인지 구별하는 함수가 있을까요 ?

없다면 대략을 요령이라도 알려주심 감사하겠습니다...


실행 파일이름으로 구별하는건 파일이름을 사용자가 임의로 변경할 수 있으므로 제외하구요...


readelf 등등의 명령어를 보긴 봤는데, 도움이 안되는것 같아서요...

kid1402의 이미지

Event 와 CriticalSection 을 이용한 동기화 문제

8개의 스레드를 돌려 Queue 에 들어간 데이터를 처리하는 클래스가 있습니다.

즉 8개의 스레드 각각은 Queue를 Pop() 하여 데이터를 처리하고, 이때 CriticalSection을 이용하여 Queue에 대한 동기화 처리를 해줍니다. (8개의 스레드가 동시에 접근할 가능성이 있으므로)
쉽게 하기 위해 이 스레드를 PopThread라고 합니다.

다른 1개의 스레드는 같은 Queue에 처리할 데이터를 Push()합니다. 물론 이때도 Push()할 때에는 CriticalSection으로 Queue에 대한 동기화를 해줍니다. (위의 8개의 스레드가 동시에 접근하고자 하므로)
이 스레드는 PushThread 라고 합시다.

페이지

프로그래밍 QnA 구독하기