crypt (enigma) z BSD
Jiri Kosina
jikos na jikos.cz
Čtvrtek Únor 9 15:15:56 CET 2006
On Thu, 9 Feb 2006, Miroslav BENES wrote:
> > > $ make
> > > Makefile:11: *** missing separator. Stop.
> > To bude nejaka uplna drobnost (nejaky chybejici/prebyvajici tabulator, atd).
> # $FreeBSD: src/usr.bin/enigma/Makefile,v 1.9 2004/02/05 22:44:24 ru Exp $
> .include <bsd.prog.mk>
Hmmm, .include ... to teda nevim z ktereho make to je, mam pocit ze gnu
make takovouhle direktivu nema ... a ty spicate zavorky kolem jmena
souboru jsou take divne - zkuste to nahradit za "standardni"
include bsd.prog.mk
> $ gcc enigma.c -lcrypt
> enigma.c: In function 'setup':
> enigma.c:45: warning: passing argument 2 of 'memcpy' makes pointer from
> integer without a cast
> Nějak nechápu, co vlastně chce (holt nejsem v C natolik kovaný) :
To je jen typovy warning ze se lisi typ predavaneho parametru od typu
ktery je v prototypu funkce ... integer -> pointer by mel byt vporadku
(kdyztakto muzete rucne pretypovat).
> 44: strncpy(salt, pw, sizeof(salt));
> 45: memcpy(buf, crypt(pw, salt), sizeof(buf));
> Přitom podle man memcpy mají být parametry :
> void *memcpy(void *dest, const void *src, size_t n);
> a funkce crypt :
> char *crypt(const char *key, const char *salt);
> No nevím, ale připadá mi to, že jsou správného typu. Nebo se pletu ?
Ano, to jsou. Je v tom zdrojaku includovane vse co je potreba - viz
linuxovy man crypt, tzn
#define _XOPEN_SOURCE
#include <unistd.h>
Nicmene tento warning by nemel vadit tomu aby se to prelozilo ... hlasi to
jeste nejakou jinou chybu?
--
JiKos.
Další informace o konferenci Linux