#include <stdio.h>
#include <sys/types.h>
#include <unistd.h>
#include <fcntl.h>
#include <stdlib.h>
#include <string.h>
int find_user (char username[100],char pass [100])
{
char *line = NULL;
size_t length = 0;
FILE
*open_status
= fopen ("user","r");
if(open_status==NULL)
{
printf ("Acest fisier nu poate fi deschis.\n");
return 0;
}
char *token = NULL;
while (getline(&line,&length,open_status)!=-1)
{
if( strcmp(token
,username
) == 0)
{
{
return 1;
}
return 0;
}
}
if ( line)
if(token)
return 0;
}
int main() {
char comanda[100];
char username[100];
char pass[100];
pid_t pid;
int fduserparent[2];
int fdpassparent[2];
int verification_pipe[2];
do
{
if(strcmp(comanda
,"login")==0)
{
pid=fork();
if(pid==-1)
{
return 1;
}
else if(pid>0)
{
int size;
//ne aflam in procesul parinte
printf("Introduceti username-ul:");
printf("Introduceti parola:");
close(fduserparent[0]);
write
(fduserparent
[1],username
,strlen(username
)+1);
close(fdpassparent[0]);
write
(fdpassparent
[1],pass
,strlen(pass
)+1);
close(fduserparent[1]);
close(fdpassparent[1]);
wait(NULL);
printf("Ne am intors in parinte:\n");
close(verification_pipe[1]);
read(verification_pipe[0],&size,sizeof(int));
char *verification_message
=malloc(size
*sizeof(char));
read(verification_pipe[0],verification_message,size+1);
printf("%s\n",verification_message
);
return 1;
}
else if(pid==0)
{
printf("Ne aflam in procesul copil:\n");
char nume[100];
char parola[100];
int verificare;
//ne aflam in procesul copil unde vom verifica validitatea datelor
close (fduserparent[1]);
close(fdpassparent[1]);
read(fduserparent[0],nume,100);
read(fdpassparent[0],parola,100);
verificare=find_user(nume,parola);//deocamdata poate fi 0 sau 1
//acum trebuie sa transmitem inapoi catre parinte
close (fduserparent[0]);
close (fdpassparent[0]);
close (verification_pipe[0]);
if(verificare==1)
{
int size
=strlen("autentificare cu succes!");
write (verification_pipe[1],&size,4);
write (verification_pipe[1],"autentificare cu succes!",size+1);
close(verification_pipe[1]);
}
else if(verificare==0)
{
int size
=strlen("autentificare fara succes!");
write (verification_pipe[1],&size,4);
write (verification_pipe[1],"autentificare fara succes!",size+1);
close(verification_pipe[1]);
}
}
}
}while(1);
return 0;
}
{"html5":"htmlmixed","css":"css","javascript":"javascript","php":"php","python":"python","ruby":"ruby","lua":"text\/x-lua","bash":"text\/x-sh","go":"go","c":"text\/x-csrc","cpp":"text\/x-c++src","diff":"diff","latex":"stex","sql":"sql","xml":"xml","apl":"apl","asterisk":"asterisk","c_loadrunner":"text\/x-csrc","c_mac":"text\/x-csrc","coffeescript":"text\/x-coffeescript","csharp":"text\/x-csharp","d":"d","ecmascript":"javascript","erlang":"erlang","groovy":"text\/x-groovy","haskell":"text\/x-haskell","haxe":"text\/x-haxe","html4strict":"htmlmixed","java":"text\/x-java","java5":"text\/x-java","jquery":"javascript","mirc":"mirc","mysql":"sql","ocaml":"text\/x-ocaml","pascal":"text\/x-pascal","perl":"perl","perl6":"perl","plsql":"sql","properties":"text\/x-properties","q":"text\/x-q","scala":"scala","scheme":"text\/x-scheme","tcl":"text\/x-tcl","vb":"text\/x-vb","verilog":"text\/x-verilog","yaml":"text\/x-yaml","z80":"text\/x-z80"}