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