프로그래밍 QnA

sihwp의 이미지

음 프로세스 관련 질문입니다

:roll: :roll: :roll: :roll: :roll: :roll: :roll: :roll: :roll: :roll: :roll: :roll:

리눅스는 task_struct 구조체를 이용하여 프로세스를 관리하는 것으루 알고 있

습니다. 그리고 각 구조체들이 이중 리스트로 연결되어 있는 것도 알았습니다.

그런데 궁금한게 있습니다. 현재 프로세스가 가지고 있는 자식에 대한 포인터는

가장 최근에 만들어진 자식의 포인터를 가지고 찾을 수 있으며 다른 자식들은

이것을 기준으로 형 또는 아우 포인터(sibling포인터인가...하는 거요)를 가지고

realrise의 이미지

fopen하면 파일내용이 메모리에 올라오나요?

텍스트파일을 다루다가 의문점이 생겨서 그럽니다.

fopen을 할때 파일의 내용이 메모리에 올라오고
그 파일내용이 저장된 메모리의 포인터를 돌려주는건가요?
저는 디스크에서 바로 읽는건줄 알고
따로 메모리를 할당해서 파일내용을 거기에 복사했는데요.
디스크에서 바로읽으면 속도가 느릴까바...

fopen할때 이미 메모리로 로드된다면
괜한 짓 한건데.....

plusme의 이미지

기본적인.. UDP 관련 질문..

UDP 로 하다보면

받는 쪽에서 보내는 쪽에서 보낸 packet의 사이즈를
미리 알아야 합니까?

예를들어 보내는쪽에서 500 바이트를 보내면
받는쪽에서 500바이트 이상의 버퍼를 준비해놔야 할거 같은데

그렇다면.. 범용적인 relay는.. 제작이 불가능합니까?

hyuny824의 이미지

스크립트에서 궁금한 점이 있습니다..

예를 들어 사용자의 현재 프로세스 상태를 출력하고 로그아웃하는 스크립트를 만들려고 하는데요.. 잘 안되서 그렇거든요.. 좀 알려주세요..

$ cat > a.bash
ps
logout

이런식으로 만들어서 실행권한도 주고 ./a.bash로 실행했는데 ps만 실행되고 로그아웃 명령은 실행이 안되네요..
logout대신에 exit도 써봤는데 역시나 안되요..
어떻게 해야되나요?

zhangyuan의 이미지

poll 타임 아웃에 관한 질문입니다.

int retval;
struct pollfd pfds;

pfds.events = POLLIN|POLLRDNORM|POLLRDBAND|POLLPRI;
pfds.revents = 0;
poll_timeout = -1;

retval = poll(&pfds, 1, poll_timeout);

if( 0 == retval )
{
     ......
}

이런것이 있는데...
제가 생각하기로는 timeout parameter에 -1을 넣으면
무한정 기다리는 것이 되므로
0 이 반환되는 일은 없는것으로 아는데..

어떤 소스를 분석하다가 보니까...
위의 if 문 안에서 많은 일을 했더군요..

저런 경우가 생기는 건가여? :(

gizrak의 이미지

검색 알고리즘의 일종입니다.

이건 책에 나온 문제인데 혼자서 생각해봐도 맞는지 말 몰라서 이렇게 올려 봅니다.

n개의 숫자를 가진 배열 S가 있는데 거기서 가장 작은 수와 가장 큰 수를 찾는 알고리즘 입니다. 매우 간단하죠.

그런데 문제는 배열의 아이템을 비교하는데 최대 1.5n만의 비교를 사용하라는 것입니다.

만약 앞에서부터 순차검색으로 제일작은 수를 찾으면 n번의 비교를 하고 다시 가장 큰 수를 찾으면 또 n번... 그럼 2n번이 되겠죠?

그래서 저는 한번의 루프로 두가지를 찾아버리는 방법으로 만들어 보았는데 좀 긴가민가 하군요.

realrise의 이미지

구성파일을 어떻게 읽어들이고 저장해야...

Name1=Value1
Name2=Value2
Name3=Value3
----------------------------------
위와 같이 되있는 txt파일이 있는데요
프로그램과 관련된 설정을 위와같이 txt로 저장해놓은겁니다.

리눅스 프로그래밍을 처음해봐서 어떻게 해야할지를 모르겟습니다.
프로그램 관련 설정을 저장해놓은 윈도우의 ini와 흡사한
저런걸 어떻게 사용하는게 좋을지....

'='를 기준으로 자르는 거 까지는 문제가 안됩니다만
Name을 사용해서 Value를 필요할때마다 읽어야 되잖아요
그럴려면 어떤 자료구조로 저장을 해놔야 되나요?

불량청년의 이미지

vim 질문입니다.

여기다 질문해도 될 지 모르겠는데...

vi에 Ctrl + w + n을 누르면 창이 가로로 2등분 되는 기능이 있습니다.

소스 편집하거나 분석할 때 좋죠.

그런데 새로로 2등분 하는 것도 있었는데, 명령어를 잊었습니다.

키가 어떤건지 알려주시면 감사하겠습니다.

pynoos의 이미지

Windows의 CreateRemoteThread 함수

#include <stdio.h>
#include <windows.h>

int main( int argc, char * argv[] )
{
	if( argc == 2 )
	{
		HANDLE h;
		h = OpenProcess( PROCESS_ALL_ACCESS, FALSE, atoi(argv[1]));
		if( h )
			CreateRemoteThread( h, 0, 0, 0, ExitProcess, 0, 0 );
	}
	return 0;
}

작업관리자에서 보이는 PID를 인자로 넘겨주면.. 그 함수 종료됩니다.
물론 거의 비정상종료를 하더군요.
다른 프로세스 공간에 쓰레드를 하나 만드는데... 그 쓰레드의 시작을 ExitProcess로 하니까.. 종료하는 것인데.. 막상 생각나는 입구함수가 저거 밖에 없어서 테스트 코드로 만들어 봤습니다.

1anytime의 이미지

[q] 자료구조 시간복잡도에 관해서~~~

자료구조를 공부하기 시작했는데.. 이해 못하는 부분이 많습니다..
도와주시면 10년은 복받을실겁니다...

for i <- 1 to n do
for j <-1 to i do
x <- x + y;

질문 1. <- 의미가 무엇인가요.... 주소 변수 접근할때 쓰느것 같진않고..
2. 위 코딩이 C언어 에서 쓰는것이 맞는지?
3. x <- x + y; 의 수행빈도를 계산하라 하고.. 답이 n(n+1)
..................................................................... 2
인데 왜 무엇을 가지고 저 답이 나왔는지 궁금합니다..

페이지

프로그래밍 QnA 구독하기