>> Read No. 46971 article  
[질문/프로그래밍] 쉘에서 background job을 foreground job
으로 돌기는 기능 만들기

등록 2002-04-15 01:22:00     조회 1
이름 수세미    

		학교에서 쉘 만들라는 숙제가 나왔는데...
 거의 다 완성단계인데.. job control단계에서 막히네요..
 % find / -name linux &
[1] 23150
% fg
find / -name linux
 즉, background job을 foreground job으로 변환하고.... 반대로 bg명령어는
 foreground process을 backgrond job으로 변경을 하는 쉘 자체에 내장된
 built-in command입니다..
 자세한 방법을 모르 겠습니다.. 아래와 같은 방법으로 구현을 하였는데...
 우선 백그라운드로 작업을 돌리고, fg를 하면... 제가 만든 쉘의 프로세스가
 stop되면서 빠져나와 버리네요.. 백그라운드 작업으로 바뀌어 집니다..
 stop된 제가 만들 쉘의 프로세스를 다시 foreground로 돌리면 다시 쉘이
 실행됩니다.. 이때 백그라운드 돌렸던 프로세스는 kill된 상태이더군요..
  int ctty;
pid_t fgpgrp; // foreground process group id
 // ctermid();는 현재 프로세스의 tty의 디바이스 파일에 대한 파일 이름을
// 리턴합니다.. "/dev/tty" 이런 값을 리턴하는 거죠..
ctty = open(ctermid(NULL), O_RDWR);
if((fgpgrp = tcgetpgrp(ctty)) < 0)
{
	.
	.
	.
 	이런식으로 이 프로세스가 background인지 foreground인지 파악합니다.
}
 tcsetpgrp(ctty, background process's ID);
 이렇게 하면 될 것 같은데..
 누구 잘 아시는 분 알려주세요.... 중간고사도 있는데..
 이것만 붙잡고 있을 수도 없고.. T.T
이름
암호
Register [ localhost 목록보기 윗글 아랫글
글쓰기
답장쓰기 수정 삭제
정규표현식 [ 상세 검색 ]
페이지로딩: [ 0.50 초 ] 작업시간: [ 0.04 초 ]

Copyleft 1999-2026 by JSBoard Open Project
Theme Designed by IDOO All right reserved
[TOP]

적수네 동네
+
| 적수네 동네
| 공부방
| 리눅스 잡지 서고
| LSN 소스
| 링크 모음
+---+
게시판
+
| 떠들어보세!
| 질문과 답변
| 새소식과 정보
| 1원짜리 팁?
| 대화방
+---+
칼럼?
+
| 세하 훔쳐보기
| Welcome2nite
| 혜진의 염장판
+---+
리눅스 상표권
+
| 반대 서명란
| 토론 게시판
+---+
GNU
+
| GNU 선언문
| GNU GPL
| GNU 미러 목록
+---+
프로젝트?
+
| 리눅스카운터
| RC5DES
| 실질헌법 제작
+---+
커널 소식
+
| 안정 버젼: 2.4.14
+---+
테마 선택
+
LSN 방송국?
+
| OFF AIR
+---+
회원
+
| 로그인
+---+
[ 적수네 동네 ] [ 리눅스 상표권 독점 반대 ] [ 한글 리눅스 문서 프로젝트 ] [ KrLine ] [ 사랑넷 ] [ Valid HTML 4.0! ] [ SlashDot ] [ Freshmeat ]
Copyleft (C) 1998-2001 Byeong-Chan Kim . License
TIME: 1791585316
System by WYZsoft, HDD by I.O.Linux, Mizi Research, Embryo, WOWLINUX, Domain by SarangNet, Network by KrLine.