프로그래밍 QnA

psjHello의 이미지

하나의 열려진파일... fork 후에는 ???

/*****************************************/
....
FILE* d_file;
.....
.....
d_file = fopen ("readme", "w+");
.....
.....

if ( fork()==0 ) { // 자식
....
....
fclose (d_file);
}
else { // 부모
sleep(10);
....
fprintf (d_file, "...........");
fclose(d_file);
}


/******************************************/
fork() 로 자식을 생성했을 때,
fork 호출 전에 열어둔 파일을 사용할 때
궁금한 점이 있는데요....

1. 자식프로세스가 작업을 하고 fclose 를 호출해
파일을 닫았습니다.

2. 잠시 sleep 하고 있더 부모프로세스가

gauri123의 이미지

pipe와 fork관련 기초수준의 질문입니다.(코딩중 에러)

일단 테스트를 위해 두 부분을 주석처리 하였습니다.

(// 로 된 세줄이 하나이고, /* */ 로 묶인 부분이 또 하나입니다.

이 두 부분을 다 풀고 첫번째 //주석 윗부분의 else {를 지워주면

원본 소스입니다.)

아래 붙인 코드 내용중 주석 처리된 밑의 else if문이 원본이나,

임시로 else { 로 바꾸어 보면 여기까지는 실행이 정상적으로 됩니다.

그런데 이것을 else if로 바꾸면 블럭 안으로 들어가 지는 것은 같은데

정상적인 실행이 안되네요...

(원본 소스를 돌린 결과가

iamsjkim의 이미지

쓰레드 내부 시스템 콜에의한 블록/ 타이머 쓰레드

(질문1)다음과 같이 코딩할 경우 a로부터 패킷입력이 없으면 Rx, Tx 쓰레드 둘다 블로킹되어버리는지 궁금합니다.

process : select() 
          if( FD_ISSET(a,..)) -> Rx , Tx thread creation

Rx thread : recv(a,..)
Tx thread : send(a,..)

(Linux에서 gcc로 컴파일합니다..-.-)

(질문2)
다음과 같은 timer 쓰레드를 생성시키고 싶은데 어떻게 해야할지 난감합니다.
(무지의 소산으로 "programming with POSIX thread"책을 찾아봐도 잘 모르겠습니다..T.T)

cutesun1의 이미지

이런거 물어봐도 돼나요?

1. Unix 시스템에서 최소한의 블럭 크기는 하나의 클러스터의 크기로 512바이트였다. 그러나 4.0BSD에서는 1024바이트로 블럭의 크기는 증가되었고, 작업량은 두배이상이 되었다. 이러한 것이 어떻게 발생 할 수 있는지 설명하라.

2. 어떤 디스크 드라이브는 512 바이트 크기의 섹터를 사용한다. 만약 한 프로그램이 128 바이트 크기의 레코드를 디스크로 쓸것을 요청한다면 화일 관리자는 레코드를 기록하기 전에 디스크로부터 한 섹터를 읽어야 한다. 그러한 불필요한 디스크 읽기의 횟수를 줄이기 위해 무엇을 할 수 있겠는가?

bw001730의 이미지

[gcc3.2와 gcc2.9.5] 컴파일러 차이로 인한 프로그램 오류인듯합

gcc 2.9.5에서 잘 돌리던 프로그램이...
gcc 3.2에서는 잘 안됩니다.
어떻게 안되는가 하면..
평소에는 잘 되다가..
갑자기 CPU100%를 차지합니다.

참고로..
IPC 와 sun thread(thr_create), pthread(pthread_create)
등의 기술을 사용하고 있습니다.
(솔라리스8에서 동작중)

어째서 이런 상황이 발생하는지..
사소한 가능성이라도 듣고 싶습니다.

jjjjrr의 이미지

어떤문자열변수를 도메인네임에 사용될수있는문자열인지를 검사

안녕하세요
어떤문자열변수를 도메인네임에 사용될수있는문자열인지를 검사해야됩니다
규칙을 보면
"'A-Z', 'a-z', '0-9', '-' 가 사용될 수 있다 또한 하이픈이 앞/뒤에 사용될 수 없고, 도트로 분리되는 각 문자열(Each segment)은 최고 63 단어(octet)까지 사용할 수 있도록 되어있다"
라고되있는데여
어떻게 검사하는코드를 작성해야될까요
한글도 허용이안되는데여
조언부탁드립니다

zeshai의 이미지

프로그램이 실행되고 있는 위치를 알려면???

어떤 프로그램을 절대 경로로도 실행 할 수 있고,

직접 디렉토리까지 가서 ./A 이렇게 실행할 수도 있는데...

문제는 A라는 프로그램이 자신의 디렉토리 밑에 있는 data 라는 디렉토리밑에

여러 파일을 써야합니다.

char* getcwd(char* buf, size_t size)를 사용하니깐,

실행시킨 위치가 뜨는군요. 뭐 이것이 작업 디렉토리겠죠.

그러면 A라는 프로그램이 있는 절대 경로를 알아올수 있는 방법은 없습니까?

글을 검색해보니 /proc/(PID)/exe 파일이 심볼릭 링크 되어있긴 하던데...

hyangil의 이미지

cdpark 님보세요 ^^

read 써본 결과 줄단위가 아니라 공백 단위던데요 ^^;

이 공백을 무시하고 줄단위로 변수에 입력을 할려면 어떻게 해야하는지좀

s 라는 하나의 변수에
"i love you"
자체를 입력할려면 어떻게 해야하죠?

s를 출력했을때 "i love you" 그대로 나오게 할려구요

^^

hyangil의 이미지

배시 쉘 스크립트에서 read 로 읽어들일때 공백을 무시할려면 어

배시 쉘 스크립트에서 read 로 읽어들일때 공백을 무시할려면 어떻게 해야하나요?

고수님들 부탁 드리오요~~

예를 들어 변수 s에 공백이 있는 문장

"i l ove you"
를 읽어 들일려면 어떻게 해야하지용?

read s

???

바이러스의 이미지

setreuid()함수

setreuid

이함수의 역활을 알고싶습니다

api를 뒤져봐도 나와있는데가 없더군요

아님 잘아는 api좀 갈켜주십시요

setreuid( 3010, 3010 );<==무슨말인지 ㅜ.ㅜ

검색을 해봤더닌 uid를 바꺼주는거라던데

상세히 알고싶습니다

페이지

프로그래밍 QnA 구독하기