Ben_Beckman
(usa Outra)
Enviado em 02/08/2020 - 19:09h
Olá pessoal, sou novo aqui no site e também comecei a usar o ubuntu recentemente.
Comecei a fazer alguns programas básicos em linguagem C e não sei por qual motivo o programa que escrevo no meu PC aprensenta saidas diferentes nos PCs dos meus amigos. Outro exemplo é quando eu usei um comando no terminal pra contar palavras em um texto , o resultado divergiu de todos meus amigos . Alguem faz ideia do que poderia ser? Acho que é no linux. pois quando instalei o mesmo ubuntu em outro pc o resultado era o mesmo do meu PC.
vou anexar o codigo que deu erro. Que e um analizador de sintaxe flex.
%{
#include<stdio.h>
#include<string.h>
%}
Alfanum [A-Za-z0-9]
ALFANUM {Alfanum}+
SIM [\.\_\-]
SIM2 [\.\,!:?;\-@+]
OP {SIM}*{ALFANUM}
OP2 {ALFANUM}{SIM}*
ARROBA (@)
COMERCIAL (.com)
FINAL [\.\,!?\:\;]
%%
{ALFANUM}{OP}*{ARROBA}{OP2}*{ALFANUM}{COMERCIAL}* { printf("%s\n",yytext) ; }
{ALFANUM}{OP}*{ARROBA}{OP2}*{ALFANUM}{COMERCIAL}*{FINAL} { yytext[strlen(yytext)-1]='\0'; printf("%s\n",yytext) ;}
{SIM2} ;
{ALFANUM} ;
[[:space:]]+ ;
[^[\t]]+ ;
%%
int main() {
yylex();
return 0;
}
ao colocar a entrada:
email-@invalido.com e email@invalido- nao sao e-mails validos, mas email@invalido eh valido!
deveria ter como saida:
email@invalido
No meu pc nao sai essa saida. Da erro, enquanto que no pcs dos meus amigos sai corretamente. Vou anexar um trecho de outro codigo que da erro.
for(i=0;i<=N;i++){ /*cria processos filhos*/
if(filho[i]!=0){
filho[i] = fork();
printf(" pid %d\n",filho[i]);}}
Esse trecho deveria criar 3 processos filhos, e e o que ocorre no meu PC. Porem nos computadores dos meus amigos criam 9 processos filhos!