Fsanf() va mettre le contenu de ton fichier à l'adresse de temp.
Mais tu n'as alloué aucun espace pour temp, ce n'est qu'un pointeur.
Soit tu déclare un temp assez gros pour prendre le contenu du fichier (char temp[32] si ton fichier fait 32 octets), soit tu fais une allocation memoire de la taille du fichier pour temp:
#include <stdlib.h>
int main(int argc, char **argv)
{
FILE *fichier;
char *temp;
long taille_file;
fichier = fopen(argv[1], "r");
//On fait pointer fichier vers la fin du fichier
fseek(fichier,SEEK_END,0);
/*On met la taille du fichier dans taille_fichier (car fichier pointe
vers la fin du fichier, sa position donne le nombre d'octets
pour arriver à la fin) */
taille_fichier=ftell(fichier);
//On refait pointer fichier au début du fichier
fseek(fichier,SEEK_SET,0);
//Allocation de temp avec la taille du fichier
temp=(char *)malloc(sizeof(char) * taille_fichier);
fscanf(fichier, "%s", temp);
printf("voila ce qu'il y a dans temp: ***%s***\n", temp);
fclose(fichier);
//On libère temp
free(temp);
return EXIT_SUCCESS;
}