>> Delete No. 14314 article
No. [질문]소스와 에러메시지가 있음니다. 보시구
답변부탁여...

등록 2000-12-13 16:53:00 By localhost     조회 2
이름 송현호    

		다음의 소스는 가상의 터미널(의사단말기)를
생성하는 소스입니다.
소스끝에 에러메시지가 있음다...
함 봐주시구여... 답변 부탁여...
 #include 		<stdio.h>
#include		<fcntl.h>
#include		<stropts.h>
 #define	PTY_MASTER	"/dev/ptmx"
 int
pty_master()
{
	int	master_fd;
 	if ((master_fd = open (PTY_MASTER, O_RDWR)) < 0)
		return(-1);
 	return(master_fd);
}
  int
pty_slave(master_fd)
int	master_fd;
{
	int	slave_fd;
	char	*slavename;
	int 	grantpt();
	int	unlockpt();
	char 	*ptsname();
 	if (grantpt(master_fd) < 0) {
		close(master_fd);
		return(-1);
	}
 	if (unlockpt(master_fd) < 0) {
		close(master_fd);
		return(-1);
	}
 	slavename = ptsname(master_fd);
	if (slavename == NULL) {
		close(master_fd);
		return(-1);
	}
 	slave_fd = open(slavename, O_RDWR);
	if (slave_fd < 0) {
		close(master_fd);
		return(-1);
 	}
 	if (ioctl(slave_fd, I_PUSH, "ptem") < 0) {
		close(master_fd);
		return(-1);
	}
	if (ioctl(slave_fd, I_PUSH, "ldterm") < 0 ) {
		close(master_fd);
		return(-1);
	}
 	return(slave_fd);
}
 main (argc, argv, envp)
int	argc;
char	**argv;
char 	**envp;
{
	int	master_fd, slave_fd, childpid;
 	if (!isatty(0) || !isatty(1))
		err_quit("stdin and stdout must be a
terminal");
 	master_fd = pty_master();
	if (master_fd < 0)
		err_sys ("can't open master pty");
	if ((childpid = fork()) < 0)
		err_sys("can't fork");
	else if (childpid == 0) {
		slave_fd = pty_slave(master_fd);
		if (slave_fd < 0)
			err_sys("can't open pty slave");
		close(master_fd);
 		exec_shell(slave_fd, argv, envp);
	}
 	pass_all(master_fd, childpid);
	exit(0);
}
  위의 소스를 컴파일 시키면 다음과 같은 메시지가 나옵니다...
해결방법이 없을까여...???
도와주세여...
 [peter@host peter]$ gcc -o pty pty1.c
/tmp/ccILuNss.o: In function `main':
/tmp/ccILuNss.o(.text+0x18a): undefined reference to
`err_quit'
/tmp/ccILuNss.o(.text+0x1a7): undefined reference to `err_sys'
/tmp/ccILuNss.o(.text+0x1c4): undefined reference to `err_sys'
/tmp/ccILuNss.o(.text+0x1f3): undefined reference to `err_sys'
/tmp/ccILuNss.o(.text+0x213): undefined reference to
`exec_shell'
/tmp/ccILuNss.o(.text+0x223): undefined reference to
`pass_all'
collect2: ld returned 1 exit status
 원래의 프로그램이 유닉스용이구여 저는
알짜리눅스 6.1을 사용합니다....
알려주세여...
감솨여...
[관리자] 패스워드를 입력 하십시오. 답장이 존재하면 함께 삭제됩니다.[ 목록 | 이전 ]
패스워드:    

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