Ho provato:
Codice: Seleziona tutto
sprintf(nomeFile,"$HOME/Desktop/");
fp=fopen(nomeFile, "w");
if(fp<0) error("file");
Codice: Seleziona tutto
sprintf(nomeFile,"$HOME/Desktop/");
fp=fopen(nomeFile, "w");
if(fp<0) error("file");

Codice: Seleziona tutto
#include<stdlib.h>
#include<stdio.h>
#include <string.h>
int main()
{
FILE *fd;
char origin[100];
int len;
printf ("immetti percorso+nome file: ");
fgets (origin, 100, stdin);
len = strlen(origin);
len--;
origin[len] = '\0';
fd=fopen(origin, "w");
if( fd==NULL )
{
perror("Errore in apertura del file");
exit(1);
}
fclose(fd);
return 0;
}

Codice: Seleziona tutto
gila@ubuntu:~/Scrivania$ Codice: Seleziona tutto
sprintf(nomeFile,"$HOME/Desktop/");
fp=fopen(nomeFile, "w");
if(fp<0) error("file");
Cosa non funziona?Però non mi funziona -.-

ovviamente così non funziona, non stai usando la shell che può espandere $HOME al percorso della home.gila75 [url=http://forum.ubuntu-it.org/viewtopic.php?p=4767789#p4767789][img]http://forum.ubuntu-it.org/images/icons/icona-cita.gif[/img][/url] ha scritto: EDIT:
Comunque ci eri arrivato da solo:Codice: Seleziona tutto
sprintf(nomeFile,"$HOME/Desktop/"); fp=fopen(nomeFile, "w"); if(fp<0) error("file");


Codice: Seleziona tutto
sprintf(nomefile,"%s/Desktop/%s",pht_homedir(),"nuovofile");
fopen(nomefile,"w");
...
Codice: Seleziona tutto
path = getenv("HOME");
strcat(path, "/Desktop/");
strcat(path, nameFile);
printf("PATH = %s",path);
fp=fopen(path, "w");
if(fp<0) error("file");
exit(0);


io su i due piedi avevo detto strcat, ma insomma, non sono un programmatoreGrazie l'ho visto adesso il mio frammento è questo e funzionante. Conviene appendere le successive stringhe alla fine con strcat o all'inizio con sprintf?
Però sai che facendo ricerche sembrerebbe più leggibile e veloce strcat? Io personalmente la trovo più semplice ed intuitiva.la migliore è snprintf()

Codice: Seleziona tutto
char variable[256];
char arr[] = "WORLD";
snprintf(variable, 256, "%s %s", "HELLO", arr);
printf ("Resultat : %s\n", variable);
Codice: Seleziona tutto
char variable[1];
snprintf(variable, 256, "%s %s", "HELLO", "WORLD");
printf ("Resultat : %s\n", variable);
printf("LEN = %d\n", strlen(variable));
Codice: Seleziona tutto
char msg[] = "PRIMO";
char variable[1];
snprintf(variable, 256, "%s %s", "HELLO", "WORLD");
printf ("Resultat : %s\n", variable);
printf("LEN = %d\n", strlen(variable));
printf("%s\n",msg);

Codice: Seleziona tutto
char variable[1];
snprintf(variable, 1, "%s %s", "HELLO", "WORLD");
Visualizzano questa sezione: 0 utenti iscritti e 4 ospiti