From: Marcelo B. <md...@ma...> - 2000-12-20 23:35:23
|
---------- Mensagem Reenviada ---------- Subject: Re: Retorno de processo ... Date: Tue, 19 Dec 2000 21:20:11 -0200 From: Marcelo Beckmann <md...@ma...> Em dom, 17 dez 2000, Andr=E9 Casteliano escreveu: # Eae manows, tudo beleza ? #=20 # Coders, ao implementar a vers=E3o em pure C do LinuxCall, me deparei co= m o # seguinte problema: como saber o que o pppd ou chat retornaram ??? #=20 # No script do Alex, =E9 simples ... mas em C ......... #=20 # Estou usando a execve (pppd_path, args, OL); #=20 # O return value dela =E9 -1 se houver erro, e NADA se tudo correr bem ..= . e # a=ED ? #=20 # Estava pensando em analisar a vari=E1vel global 'errno'... Se n=E3o me # engano, =E9 exatamente o que o Alex faz. Reparem: #=20 # -------------------------------- [corta] # $chat_path -s -v -S -U "$init_str" -T "ATX4${string}D$modo$number" # -f ./chat-script 2>> ./chat.log; =20 #=20 # erro=3D$?; #Armazena o erro para testar. man chat para maiores # infos #=20 # if [ $erro -lt 4 ]; then=20 # if [ $erro =3D 0 ]; then=20 # echo "CONECTANDO ..." > /dev/stderr;=20 # echo "CONECTANDO ..." >> ./linuxcall.log; # else echo "CANCELADO" >> ./linuxcall.log; # fi; # break 2;=20 # else # if [ "$erro" =3D "4" ]; then msgerr=3D"ERRO DESCONHECIDO!"; fi; # if [ "$erro" =3D "5" ]; then msgerr=3D"OCUPADO..." ; fi; # if [ "$erro" =3D "6" ]; then msgerr=3D"NO CARRIER"; fi; # if [ "$erro" =3D "7" ]; then msgerr=3D"SEM TOM DE DISCAR"; fi; # if [ "$erro" =3D "8" ]; then msgerr=3D"SEM TOM DE DISCAR"; fi; # echo "$msgerr" > /dev/stderr; # echo "$msgerr" >> ./linuxcall.log; # fi;=20 #=20 # if [ "$cont" =3D "$rediscar" ]; then break 2; fi; # ---------------------------------------- [corta] #=20 # N=E9 ? Tava pensando: if errno =3D=3D 4 printf ("Erro desconhecido\n"); # # Mais ou menos isso ... ehehehe S=F3 uma coisa andre... se em 'var_erro' voce armazenar o retorno do execve(chat....), voce teria que fazer algo como: if var_erro =3D=3D 4 printf ("Erro desconhecido\n"); ao inv=E9s de usar 'errno' Para usar 'errno', o lance =E9 meio diferente... N=E3o sei que fontes de consulta voce tem ai sobre o uso de errno. D=E1 uma olhada, tenta ver como usar ele.=20 Qualquer d=FAvida, d=E1 um toque, nos livros que eu tenho aqui, no beggining e no 24 horas, tem capitulos sobre como usar ele, posso dar uma olhada e te passar c=F3digos de exemplos, ajudar a esclarecer e coisa e tal. Ah, a p=E1gina de manual de errno que est=E1 la ldp-br fui eu que traduzi, hehehhe # Pelo que eu manjei dos scripts do Alex, o lance =E9 o seguinte: executa= o # pppd, e o pr=F3prio pppd executa o script 'chat-redial', que chama o ch= at # .. hum ... ent=E3o, para evitar o uso do script, primeiro eu chamo o pp= pd. # IIf nenhum erro, executa chat, if nenhum erro, grava os DNS, lock, etc # ... #=20 # Que tal ??? :) Hum, em principio ta dentro. Vou tentar dar uma olhada tb, qualquer ideia nova eu repasso. Como voce citou o Alex, inclui uma copia desse email para ele tb. Como ele tamb=E9m =E9 desenvolvedor, e estamos juntos no mesmo barco... Falar nisso, lembra aquela lista que tu criou na source forge? Era uma lista tipo linuxcall-coders, sei l=E1... bom, caso a gente venha a ter um ritmo mais intenso de troca de mails sobre development, seria uma boa ativ=E1-la, em principio eu, voce, o Amauri e o Alex estar=EDamos nela, que tal? # J=E1 implementei algumas coisas, mais estou com dificuldades no tratame= nto # de par=E2metros de linha de comando ... pretendo implementar algumas # coisas, mas elas est=E3o 'conflitando' com as op=E7=F5es atuais ... heh= ehe Andre, no livro 24 horas, tem um capitulo sobre isso, tratamento de argc e argv, usando a fun=E7=E3o getopt(). Os codigos de todo o livro eu tenho em CD, posso mandar um tarball ai. T=E1 a fim?=20 Eu n=E3o vou prometer ver isso j=E1 pra agora, ta vindo o natalz=E3o ai e as coisas t=E3o meio corridas, mas na semana entre natal e ano novo normalmente =E9 mais tranquilo, ai espero poder ajudar legal. # se vcs n=E3o souberem a resposta pr=E1 isso a=ED, o jeito vai ser posta= r na # prog-br ... :P Ok Andre, ve ai a tua necessidade. Voce ja chegou a tentar algumas op=E7=F5es? T=E1 partindo do zero? Tem alguma duvida mais geral ou mais especifica?=20 Andre, sei que t=E1 foda ai, mas tenta fazer um tarball dos fontes da vers=E3o pure c e colocar num disquete, ai quando der uma chance, manda por mail pra gente. Ai daria pra se situar melhor como t=E3o as coisas, participar melhor. Lembre-se: tudo que for a la dialog, pode ser feito tranquilamente em newt, e com isso eu ja mexi, poderia ajudar. # Falous pessoal,=20 #=20 Falou Andr=E9 e pessoal, n=E3o deixem de mandar noticias, fico feliz quando voces escrevem. Abra=E7=E3o ai, --=20 #=3D-=3D[ ser...@us... ]=3D-=3D+=3D#=3D-----------= ---=3D# | Marcelo D. Beckmann --user[]=3D"#173935"-- | | CL5 2.2.14 | md...@ma... UIN [53189692]----+ | Slack 7 2.2.13 # - =3D-#----=3D[ linuxcall.sourceforge.net ]=3D-----#-=3D=3D-=3D=3D-=3D= =3D-=3D=3D-=3D=3D-# + .~. | 386DX40 8MB 420MB Western Digital Caviar ] /V\ #----2.0.36--7,68 bogomips----[ Microcom 14400 CGA NE2000 ] /(.)\ "Estamos de volta aos tempos em que os homens eram homens ] ^`~=B4^ e programavam seus pr=F3prios drivers de dispositivo."L.T. ] #-=3D=3D=3D=3D-#----=3D[ serialcoder ]=3D- + -=3D[ http://wm.themes.org ]= =3D-----' RTS-[CTS]-DLE-STX-17-39-35-CRC-F6-66-DLE-ETX-/RTS-[/CTS-RTS]-CTS-[ACK] ------------------------------------------------------- |