The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

[Linux] Попытка разобраться с псевдотерминалами pts'98 (linux tty terminal)


<< Предыдущая ИНДЕКС Поиск в статьях src Установить закладку Перейти на закладку Следующая >>
Ключевые слова: linux, tty, terminal,  (найти похожие документы)
_ RU.UNIX (2:5077/15.22) _____________________________________________ RU.UNIX _ From : Serg Ostapenko 2:5020/400 01 Dec 99 18:33:22 Subj : [Linux] Попытка разобраться с псевдотерминалами pts'98 ________________________________________________________________________________ From: "Serg Ostapenko" <osix@permonline.ru> Здраствуйте. Имею: Red Hat 6.0, kernel - 2.2.15-5 + в ядре включена поддержка Unix pts'98 Раньше в СКО 3.0 была написана задача, которая переключала ввод-вывод с текущего терминала на другой (с одной виртуальной консоли на другую). Устройства назывались tty. В связи с перездом на Линукс возникла проблема - эта задача корректно не работает под Х и псевдотерминалами. Вопросы: По Линуксу 1. Могу ли я отключить поддержку pts'98? Hа каких тогда терминалах будет запускаться xterm? 2. В ядре отключил поддержку unix terminal'98 и ... не смог построить ядро. Сругались на неопределенные ссылки в API псевдотерминалов (вроде openpts и т.д.) ??? Может где еще надо чего сделать??? По программированию 3. Почитал info glibc на предмет открытия псевдотерминала и т.д. Hаписал программу - все нормально псевдотерминал (первый номер из свободных открыл, точнее занял номер) есть, но теперь надо туда запустить мою программу, эта программа интерактивная не иксовая. Что делать? Hиже привожу пример, который я написал, может он лучше покажет, что я сделал... /* * Попытка разобраться с псевдотерминалами * * Остапенко С. В. * 991130 * * Linux RH 6.0 * kernel 2.2.13 * egcs-1.1.2 * */ #include <unistd.h> #include <fcntl.h> #include <stdlib.h> #include <stdio.h> #include <errno.h> void main() { int master, /* master terminal */ slave; /* slave terminal */ char* slave_name; /* name slave pseudo-terminal */ // Open master if( (master = getpt()) < 0) { perror("Can't open master pts!\n"); close(master); exit(1); } // Changes ownership and permissions for master pseudo-terminal and unlock slave if( grantpt(master)<0 || unlockpt(master)<0 ) { perror("Can't change ownership or permissions for master pseudo-terminal!\n"); close(master); exit(1); } // Get name of slave if( (slave_name = ptsname(master)) == NULL ) { perror("Can't get name of slave pseudo-terminal!\n"); close(master); exit(1); } // Open slave if( (slave = open(slave_name, O_RDWR)) == -1) { perror("Can't open slave pts!\n"); close(master); exit(1); } // Write to slave // Вот здесь я и не понял. Hе работает. Что делать дальше? if( write(slave, "Hello pts!\n", 11) == -1 ) perror("Can't wrote to slave pts!\n"); printf("\n%s\n", slave_name); // execlp("xterm", 0); // getchar(); close(slave); close(master); } В общем задача следующая: Есть менеджер задач, все задачи взаимодействуют с менеджером через разделяемую память. Сам менеджер интерактивный - взаимодеиствует с пользователем. Одна из запускаемых задач тоже интерактивная. Ее ввод-вывод и надо выкинуть на другой терминал ( в моем случае на другой х-терминал). Как? Принимаются все советы, нравоучения, ссылки и особенно примеры. PS. Подумал и решил добавить скошную задачу. -- Thanks in advanced Best regards. Serg osix AT permonline DOT ru osix AT raid DOT perm DOT ru begin 666 Ttyswt.c M+RH*("H@(/#2S\?2P<W-P2#0Q=+%SL':SL'>P<74(-?7S\0OU]G7S\0@U,72 MS<G.P<S!(,D@VL'0U=/+P<74"B J("#.P2#.Q<T@R\_-P<[$U2X*("HO"@HC M:6YC;'5D92 \<W1D:6\N:#X*(VEN8VQU9&4@/'-T<FEN9RYH/@HC:6YC;'5D M92 \<WES+W1Y<&5S+F@^"B-I;F-L=61E(#QS:6=N86PN:#X*(VEN8VQU9&4@ M/&5R<FYO+F@^"B-I;F-L=61E(#QT97)M:6]S+F@^"@IE>'1E<FX@8VAA<BHJ M("!E;G9I<F]N.R @(" @(" @(" @(" @(" @+RH@S\O2U=;%SLG%(-#2S\/% MT]/!("HO"@HO*@H@*B @Y,'.SMG%"B J+PH*(V1E9FEN92!M87A!<F<@,C @ M(" @(" @(" @(" @(" @(" @(" @("\J(,W!R]/)S<',V,[/Q2#>R=/,SR#! MTL?5S<7.U,_7("HO"B-D969I;F4@;6%X16YV(#0P(" @(" @(" @(" @(" @ M(" @(" @(" O*B#-P<O3R<W!S-C.S\4@WLG3S,\@T,72Q<W%SL[9R" J+PH* M<W1A=&EC(&-H87(J(" @8V]M07)G6VUA>$%R9UT@/2![,'T[(" @("\J(,'2 MQ]7-Q<[4V2#+S\W!SL39("HO"G-T871I8R!C:&%R*B @(&-O;45N=EMM87A% M;G9=.R @(" @(" @(" O*B#/R]+5UL7.R<4@R\_-P<[$V2 J+PIS=&%T:6,@ M<&ED7W0@("!C;VU0:60[(" @(" @(" @(" @(" @(" @+RH@R<3%SM3)QLG+ MP=3/TB#+S\W!SL39("HO"@IS=&%T:6,@8VAA<BH@("!T='E.86UE(#T@,#L@ M(" @(" @(" @(" @+RH@R<W1(-3%TLW)SL',P2 J+PIS=&%T:6,@8VAA<B @ M("!T='E%;G9;.#!=(#T@>S!].R @(" @(" @+RH@U,G0(-3%TLW)SL',P2 J M+PH*<W1A=&EC(&EN=" @(" @<')C3G5M.R @(" @(" @(" @(" @(" @("\J M(,[/S<72(-K!S<_2P=;)U\'%S<_'SR#0TL_#Q=/3P2 J+PIS=&%T:6,@:6YT M(" @("!P<F-'<G [(" @(" @(" @(" @(" @(" @+RH@SL_-Q=(@S,G$Q=+! M(-/%P<[3P2 J+PH*<W1A=&EC($9)3$4J(" @;F5W:6X[(" @(" @(" @(" @ M(" @(" @("\J(-#/U,_+R2#$S-$@R\_-P<[$V2 J+PIS=&%T:6,@1DE,12H@ M("!N97=O=70["G-T871I8R!&24Q%*B @(&YE=V5R<CL*"G-T871I8R!S=')U M8W0@=&5R;6EO<R @(" @(" @(" @(" @(" @(" O*B#$P<[.V<4@U,72S<G. MP<S!.B J+PH)(" @(" @('1E<FU/;&0L(" @(" @(" @(" @(" @(" O*B @ M+2#3U,'2V<4@(" @(" @(" J+PH)(" @(" @('1E<FU.97<[(" @(" @(" @ M(" @(" @(" O*B @+2#.S]?9Q2 @(" @(" @(" J+PH*=F]I9"!T;U]C;VTH M<VEG*2 @(" @(" @(" @(" @(" @(" @(" @("\J(-#%TL7$P=3>R<L@T\G' MSL',S]<@R\_-P<[$Q2 J+PH@("!I;G0@<VEG.PI["B @('-I9VYA;"AS:6<L M('1O7V-O;2D["B @(&MI;&PH8V]M4&ED+"!S:6<I.PI]"@HO*@H@*B @Y\_, MS]?.S\H@S<_$U<S8"B J+PH*;6%I;BAA<F=C+"!A<F=V*0H@("!I;G0@(" @ M(&%R9V,["B @(&-H87(J*B @87)G=CL*>PH@("!C:&%R(" @<ULR-39=.PH@ M("!I;G0@(" @:2QN.PH@("!&24Q%*B @9FEL93L*"B @(&-H87(J(" @<W)C M.R @(" @(" @(" @(" @(" @(" @(" @(" O*B#)T]3/WL[)RR#+S\W!SL3. MS\H@T]32S\O)("HO"B @(&-H87(J*B @9'-T.R @(" @(" @(" @(" @(" @ M(" @(" @(" O*B#0TLG%S<[)RR#3U-+/R\D@*B\*"0D)"0DO*B#2P=K"S](@ MR\_-P<[$SL_*(-/4TL_+R2 J+PH@("!F;W(H:3TP+"!N/3$L('-R8STP+"!D M<W0],#L@,3L@<W)C/7-T<G1O:R@P+"(@7'0B*2D*(" @>PH@(" @("!I9B@A M<W)C*2![(" @(" @(" @(" @(" @(" @(" @(" @+RH@U]G"S]++P2#)T]3/ MWL[)R\$@*B\*"2!I9B@K*VD@/CT@87)G8RD*"2 @("!B<F5A:SL*"2!S<F,@ M/2!S=')T;VLH87)G=EMI72PB(%QT(BD["B @(" @('T*"B @(" @(&EF*&1S M="D@>R @(" @(" @(" @(" @(" @(" @(" @(" O*B#:P=#/S,[%SLG%(-#2 MR<7-SLG+P2 J+PH)(&EF*"ID<W0I('L*"2 @("!F<')I;G1F*'-T9&5R<BPB M\,72Q<_0TL7$Q<S%SLG%(-#%TL7-Q<[.S\H@)7-<;B(L*F1S="D["@D@(" @ M97AI="A%24Y604PI.PH)('T*"2 J9'-T(#T@<W)C.PH)(&1S=" @/2 P.PH) M(&-O;G1I;G5E.PH@(" @("!]"@H@(" @("!I9BAS<F-;,%T]/2<M)RD@(" @ M(" @(" @(" @(" @(" @+RH@TL':PL_2(,O/S<'.Q-D@*B\*"2!S=VET8V@H M<W)C6S%=*2!["@D@(" @8V%S92 G8R<Z(&1S=" ]("9C;VU!<F=;,%T["@D) M(" @(" @8V]N=&EN=64["@D@(" @8V%S92 G="<Z(&1S=" ]("9T='E.86UE M.PH)"2 @(" @(&-O;G1I;G5E.PH)(" @(&1E9F%U;'0Z("!F<')I;G1F*'-T M9&5R<BPB[L70TL'7R<S8SMG*(,;,P<<@)6-<;B(L<W)C6S%=*3L*"0D@(" @ M("!E>&ET*$5)3E9!3"D["@D@?0H*(" @(" @:68H;B \(&UA>$%R9RD@(" @ M(" @(" @(" @(" @(" @("\J(-#!TL'-Q=32V2#+S\W!SL39("HO"@D@8V]M M07)G6VXK*UT@/2!S<F,["B @(" @(&5L<V4@>PH)(&9P<FEN=&8H<W1D97)R M+"+SS,G;R\_-(,W.S\?/(,'2Q]7-Q<[4S]=<;B(I.PH)(&5X:70H13)"24<I M.PH@(" @("!]"B @('T*(" @8V]M07)G6VY=(#T@,#L*"B @(&EF*"%C;VU! M<F=;,%T@?'P@(71T>4YA;64@?'P@9'-T*2![(" O*B#0TL_7Q=++P2 J+PH@ M(" @("!F<')I;G1F*'-T9&5R<BPBYL_2S<'4(-#%TL7+S,#>P=3%S-$@U,72 MS<G.P<S!.B E<R(L(&%R9W9;,%TI.PH@(" @("!F<')I;G1F*'-T9&5R<BPB M("UC(#S+S\W!SL3!/B!;/-#!TL'-Q=32V3Y=("UT(#S4Q=+-R<[!S#Y<;B(I M.PH@(" @("!F<')I;G1F*'-T9&5R<BPB(,?$Q2 \R\_-P<[$P3X@(" M(,G- MT2#:P=#5T\O!Q<W/RB#+S\W!SL397&XB*3L*(" @(" @9G!R:6YT9BAS=&1E M<G(L(B @(" @/-#!TL'-Q=32V3X@+2#0P=+!S<74TMD@R\_-P<[$V5QN(BD[ M"B @(" @(&9P<FEN=&8H<W1D97)R+"(@(" @(#S4Q=+-R<[!S#X@("T@R<W1 M(-3%TLW)SL',P2#$S-$@W-3/RB#+S\W!SL397&XB*3L*(" @(" @97AI="@Q M*3L*(" @?0H*(" @9F]R*&D],#L@96YV:7)O;EMI73L@:2LK*2 @(" @(" @ M(" @("\J(-/&S]+-R=+/U\'4V"#/R]+5UL7.R<4@*B\*(" @(" @:68H:3QM M87A%;G8I"B @(" @('L*"2!C;VU%;G9;:5T@/2!E;G9I<F]N6VE=.PH@(" @ M(" @(" O+R!P<FEN=&8H(B5S7&XB+"!C;VU%;G9;:5TI.PH@(" @("!]( H@ M(" @("!E;'-E('L*"2!F<')I;G1F*'-T9&5R<BPB\\S)V\O/S2#-SL_'SR#0 MQ=+%S<7.SMG((,_+TM76Q<[)T5QN(BD["@D@97AI="A%,D))1RD["B @(" @ M('T*(" @8V]M16YV6VE=(#T@,#L*"0D)"0DO*B#5VL[!U-@@SL_-Q=(@T-+/ MP\73T\$@*B\*(" @<W!R:6YT9BAS+" B<',@+70@)7,B+"!T='E.86UE*3L@ M(" @("\J("#.P2#4Q=+-R<[!S,4@(" @(" @(" J+PH@("!F:6QE(#T@<&]P M96XH<RPB<B(I.PH@("!I9B@A9FEL92!\? H@(" @("!F<V-A;F8H9FEL92PB M)2IS)2IS)2IS)2IS(BD@/3T@14]&('Q\"B @(" @(&9S8V%N9BAF:6QE+"(E M=24J<R4J<R4J<R(L)FDI(#T]($5/1BD*(" @>PH@(" @("!F<')I;G1F*'-T M9&5R<BP@(N[%U"#4P<O/Q\\@U,72S<G.P<S!("5S7&XB+"!T='E.86UE*3L* M(" @(" @97AI="A%3EA)3RD["B @('T*(" @<')C1W)P(#T@:3L@(" @(" @ M(" @(" @(" @(" @(" @(" @("\J(,S)Q,72(-/%P<[3P2 J+PH@("!D;PH@ M(" @("!P<F-.=6T@/2!I.PH@("!W:&EL92AF<V-A;F8H9FEL92PB)74E*G,E M*G,E*G,B+"9I*2 A/2!%3T8I.PH@("!P8VQO<V4H9FEL92D["@H@("!F:6QE M(#T@9F]P96XH(B]E=&,O='1Y='EP92(L(")R(BD[(" @+RH@U=K.P=38(-3) MT"#4Q=+-R<[!S,$@*B\*(" @:68H9FEL92D@>PH@(" @("!C:&%R(',R6S(P M73L*(" @(" @=VAI;&4H9G-C86YF*&9I;&4L(B5S)7,B+',L<S(I(3U%3T8I M('L*"2!I9B@A<W1R8VUP*',R+"!T='E.86UE*2D@>PH)(" @(&9O<BAI/3 [ M(&-O;45N=EMI73L@:2LK*0H)(" @(" @(&EF*"%S=')N8VUP*&-O;45N=EMI M72PB5$5232(L-"DI('L*"0D@('-P<FEN=&8H='1Y16YV+" B5$5233TE<R(L M(',I.PH)"2 @8V]M16YV6VE=(#T@='1Y16YV.PH)"2 @8G)E86L["@D@(" @ M(" @?0H)(" @(&)R96%K.PH)('T*(" @(" @?0H@(" @("!F8VQO<V4H9FEL M92D["B @('T*"B @(&EF*"%T='E%;G9;,%TI('L*(" @(" @9G!R:6YT9BAS M=&1E<G(L("(E<UQN(BP@='1Y16YV6S!=*3L*(" @(" @9G!R:6YT9BAS=&1E M<G(L(N[%(,W/Q]4@U=K.P=38(-3)T"#4Q=+-R<[!S,$@)7-<;B(L='1Y3F%M M92D["B @(" @(&5X:70H14Y824\I.PH@("!]"@H@("!S<')I;G1F*',L(B]D M978O)7,B+'1T>4YA;64I.R @(" @(" @+RH@T,72Q<[!VL[!WLG4V"#0S]3/ MR\D@*B\*(" @:68H*&YE=VEN(" ](&9R96]P96XH<RPB<B(L<W1D:6XI*2 @ M)B8*(" @(" @*&YE=V]U=" ](&9R96]P96XH<RPB=R(L<W1D;W5T*2D@)B8* M(" @(" @*&YE=V5R<B ](&9R96]P96XH<RPB=R(L<W1D97)R*2D@)B8*(" @ M(" @(71C9V5T871T<BAF:6QE;F\H;F5W:6XI+"9T97)M3VQD*2 F)@H@(" @ M(" A=&-G971A='1R*&9I;&5N;RAN97=I;BDL)G1E<FU.97<I*0H@("!["B @ M(" @(&-O;5!I9" ](&9O<FLH*3L@(" @(" @(" @(" @(" @(" O*B#0S]+/ MQ,G4V"#0TL_#Q=/3("HO"B @(" @(&EF*&-O;5!I9"D@>R @(" @(" @(" @ M(" @(" @(" @(" O*B#/U,7#("HO"@D@<VEG;F%L*%-)1TE.5"P@=&]?8V]M M*3L@(" @(" @("\J(,[!T]32S\G4V"#3R<?.P<S9("HO"@D@<VEG;F%L*%-) M1U%5250L=&]?8V]M*3L*"2!S:6=N86PH4TE'5$5232QT;U]C;VTI.PH)('-I M9VYA;"A324=54U(Q+'1O7V-O;2D["@D@<VEG;F%L*%-)1U534C(L=&]?8V]M M*3L*"@D@=VAI;&4H=V%I="@F:2D@(3T@8V]M4&ED*3L@(" @("\J(-;$P=38 M(-/-Q=+4R2#3V<[!("HO"@D)"0D)+RH@U\_3T]3!SL_7R=38(-#2Q=;.Q<4@ MT\_3U,_1SLG%("HO"@D@<WES=&5M*")T<'5T(&EN:70[('1P=70@8VQE87(B M*3L*"2!I9BAN97=I;B F)B!N97=O=70@)B8@;F5W97)R*2!["@D@(" @=&-S M971A='1R*&9I;&5N;RAN97=I;BDL5$-304Y/5RPF=&5R;4]L9"D["@D@(" @ M9F-L;W-E*&YE=VEN*3L*"2 @("!F8VQO<V4H;F5W;W5T*3L*"2 @("!F8VQO M<V4H;F5W97)R*3L*"2!]"@D@:VEL;"AP<F-.=6TL(%-)1T-/3E0I.PH@(" @ M("!](&5L<V4@>R @(" @(" @(" @(" @(" @(" @(" @(" @+RH@T]G.("HO M"@D@8V9G971I<W!E960H)G1E<FU.97<I.R @(" @(" @("\J(-/>R=3!U-@@ MT\O/TL_3U-@@S\+-Q<[!("HO"@D@8V9G971O<W!E960H)G1E<FU.97<I.PH) M"0D)"2\J(,[!T]32S\G4V"#3TL7$U2#4Q=+-R<[!S,$@*B\*(" @(" @(" @ M+R\@26YP=70@;6]D97,*"2!T97)M3F5W+F-?:69L86<@?#T@24-23DP@?"!) M6$].('P@25A/1D8@?"!)1TY005(@?"!"4DM)3E0["@D@=&5R;4YE=RYC7VEF M;&%G("8]?BA)4U1225 @?"!)3DQ#4B!\($E'3D-2('P@4$%235)+('P@24=. M0E)+('P*"0D)(" @("!)3E!#2RD["@D@+R\@3W5T<'5T(&UO9&5S"B @(" @ M(" @('1E<FU.97<N8U]O9FQA9R!\/2!/4$]35"!\($].3$-2.PH)('1E<FU. M97<N8U]O9FQA9R F/7Y/0U).3#L*(" @(" @(" @"B @(" @(" @("\O($-O M;G1R;VP@;6]D97,*"2!T97)M3F5W+F-?8V9L86<@?#T@0TQ/0T%,('P@0U)% M040@?"!#4S@@?"!(55!#3#L*"2!T97)M3F5W+F-?8V9L86<@)CU^*$-35$]0 M0B!\(%!!4D5.0B!\(%!!4D]$1"D["B @(" @(" @( H@(" @(" @(" O+R!, M:6YE(&1I<V-I<&QI;F4@;6]D97,*"2!T97)M3F5W+F-?;&9L86<@?#T@14-( M3R!\($5#2$]%('P@14-(3TL@?"!)0T%.3TX@?"!)4TE'('P@5$]35$]0.PH) M('1E<FU.97<N8U]L9FQA9R F/7XH14-(3TY,('P@24585$5.('P@3D]&3%-( M*3L*"2 *(" @(" @(" @+R\@0V]N=')O;"!C:&%R86-T97)S"B @(" @(" @ M('1E<FU.97<N8U]C8UM614]&72 @(#T@0T5/1CL*"2!T97)M3F5W+F-?8V-; M5D5205-%72 ]($-%4D%313L*"2!T97)M3F5W+F-?8V-;5DE.5%)=(" ]($-) M3E12.PH)('1E<FU.97<N8U]C8UM62TE,3%T@(#T@0TM)3$P["@D@=&5R;4YE M=RYC7V-C6U9154E472 @/2!#455)5#L*"2!T97)M3F5W+F-?8V-;5E-54U!= M(" ]($-355-0.PH)('1E<FU.97<N8U]C8UM64U1!4E1=(#T@0U-405)4.PH) M('1E<FU.97<N8U]C8UM64U1/4%T@(#T@0U-43U ["@H)('1C<V5T871T<BAF M:6QE;F\H;F5W:6XI+%1#4T%.3U<L)G1E<FU.97<I.PH)"0D)"2\J(-#/Q,?/ MU,_7R=38(,D@VL'0U=/4R=38(-#2S\/%T],@*B\*"2!K:6QL*'!R8TYU;2P@ M4TE'4U1/4"D["@D@<V5T<&=I9"AC;VU0:60L<')C1W)P*3L*"2!S>7-T96TH M(G1P=70@:6YI=#L@='!U="!C;&5A<B(I.PH)(&5X96-V92AC;VU!<F=;,%TL @(&-O;4%R9RQC;VU%;G8I.PH@(" @("!]"B @('T*?0H` ` end --- ifmail v.2.14dev3 * Origin: Demos online service (2:5020/400)

<< Предыдущая ИНДЕКС Поиск в статьях src Установить закладку Перейти на закладку Следующая >>

Обсуждение [ RSS ]
 
  • 2, Igor (?), 06:56, 30/07/2002 [ответить]  
  • +/
    Sorry, for the prevoius strangely encripted message. Something doesn't work in my mozilla...
    1. It's strange you had problems with kernel. It must compile fine. Check the configure options again.
    2. You can always disable the pts even you have its support in your kernel by removing it from the /etc/fstab:
    #none           /dev/pts   devpts      gid=5,mode=620  0   0
    3. But even with this your program Ttyswt give an error message:
    e.g. Ttyswt -c who -t ttyp2
    "Slishkom mnogo peremennih okruzhenija"
     

    игнорирование участников | лог модерирования

     Добавить комментарий
    Имя:
    E-Mail:
    Заголовок:
    Текст:




    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру