mboost-dp1

'Lille problem....


Gå til bund
Gravatar #1 - berador
27. aug. 2003 08:11
En ven og jeg er i gang med et lille projekt, et program der sender en besked (i krypteret form) til en anden (via enten SSH/FTP eller TELNET-protokollen). Eneste problem er transmissionen, den åbner en pipe (som den skal) men gemmer filen lokalt (hvilket den jo IKKE skal) hvorefter den lukker pipen (som den skal). Er der nogen der kan svare mig på hvor det er jeg har kvajet mig (C/C++ er ikke min stærkeste side, men ASM tager en evighed at skrive).

#include
#include
#include
#include
#include
#include

char input_string[4096000];
char file_name[512];
char reciever[64];
int (*fpointer)();
int *target;
FILE *ptr;
FILE *fd;

skriv_fil()
{
printf(" Enter message : ");
gets(input_string);
printf(" Enter name of file to save message as : ");
gets(file_name);
};

transmitter()
{
printf(" Enter Protocol & Reciever : ");
gets(reciever);
target = open("%s/%s",reciever,file_name,O_CREAT,O_RDWR);
fd = popen(ptr,"w");
ptr = fopen(target,"w");
fputs(input_string,fd);
fclose(ptr);
pclose(fd);
};
Gravatar #2 - berador
27. aug. 2003 08:30
P.S. Hvis nogen skulle være i tvivl er det 'gnu-c' :) !
Gravatar #3 - Jar
27. aug. 2003 11:08
Det er vel ikke så underligt at 'ptr = fopen(target,"w");' åbner en fil lokalt?

Og en lille notits: gets er en buffer-overrun fest, brug
fgets(file_name, sizeof(file_name), stdin) istedet.
Gravatar #4 - berador
27. aug. 2003 11:39
"Det er vel ikke så underligt at 'ptr = fopen(target,"w");' åbner en fil lokalt?"

?????

Den linje er en pointer til kommandoen der åbner pipen, hvis du har en anden model må du gerne komme med den, ellers så lad være med at spille klog,,,gider du?
Gravatar #5 - seahawk
27. aug. 2003 11:48
#4:

Forventer du nogensinde igen at folk vil hjælpe dig, når du taler til folk der prøver at hjælpe, på den måde?

http://www.catb.org/~esr/faqs/smart-questions.html

Den kunne du vist have brug for at læse...
Gravatar #6 - berador
27. aug. 2003 12:00
Beklager hvis jeg lød grov, men hvis man kigger koden igennem er det (efter min mening) åbenlyst hvordan programmet fungerer.

Det jeg ønskede hjælp med var om det var en forkert komando jeg anvendte & i så fald HVILKEN JEG SKULLE BRUGE ISTEDET, ikke en der bare siger forkert kommando makker!

Når jeg bliver spurgt om noget af nogen siger jeg ikke at det ved jeg, hvorefter jeg ikke svarer, for det kan ikke bruges til noget.
Gravatar #7 - Jar
27. aug. 2003 16:05
jeg vælger at ignorere dit lettere sure opstød, og går til kødet:

1. Dit program indeholder flere åbenlyse fejl
* brug af uinitialiserede variable (hint: første brug af ptr)
* standard library funktioner bliver kaldt forkert (hint: open)

2. Dit program indholder hvad mange ville kalde "dårlig kodestil" (det er ligegyldigt hvis koden virker, men er forfærdeligt når den skal debugges)
* ingen error checking (hint: programmet går ned hvis eks. fopen fejler)

3. Du har klippet koden ud af kontekst uden at fjerne alle referencer til resten af koden, og uden at komentere eller nævne det.

Mine forslag:
* Check de funktioner du brugers man-sider.
* Check returværdier.
* Brug en nyere compiler, hvis det er muligt.

Nej, jeg er ikke linux-udvikler og jeg ved ikke noget specifikt om lige præcis dit problem, men derfor kunne det jo hænde at jeg havde noget konstruktiv kritik og brugbar input at komme med alligevel?
Gå til top

Opret dig som bruger i dag

Det er gratis, og du binder dig ikke til noget.

Når du er oprettet som bruger, får du adgang til en lang række af sidens andre muligheder, såsom at udforme siden efter eget ønske og deltage i diskussionerne.

Opret Bruger Login