Torna indietro   Hardware Upgrade Forum > Software > Programmazione

AMD Advancing AI 2026: l'hardware AMD per le elaborazioni IA del futuro, tra GPU, CPU e robot
AMD Advancing AI 2026: l'hardware AMD per le elaborazioni IA del futuro, tra GPU, CPU e robot
AMD Advancing AI è l'appuntamento annuale con il quale l'azienda americana mostra quelle che sono le proprie novità dal versante datacenter. Tra piattaforma Helios, GPU Instinct MI455X e processori EPYC di sesta generazione tutto quello che serve per processare l'IA sempre più complessa ed esigente
Tascabile e con Android: BOOX Go 6 Gen II è diverso da tutti gli altri e-reader
Tascabile e con Android: BOOX Go 6 Gen II è diverso da tutti gli altri e-reader
BOOX Go 6 Gen II porta per la prima volta il supporto allo stilo su un e-reader da 6 pollici, affiancando 3 GB di RAM al collaudato Snapdragon 665 e un design rivisto con scocca posteriore a costolature. Su carta la proposta è interessante, ma Android 11 fuori supporto, l'assenza di un alloggiamento per il pennino e un'autonomia ridotta rispetto agli e-reader tradizionali sono i compromessi da accettare
Recensione Lenovo Idea Tab Plus: il tablet da 12 pollici che costa meno di 300 euro
Recensione Lenovo Idea Tab Plus: il tablet da 12 pollici che costa meno di 300 euro
Lenovo Idea Tab Plus prova a portare un display da 12,1 pollici 2.5K, quattro speaker Dolby Atmos e una batteria da 10.200 mAh sotto la soglia psicologica dei 300 euro, penna inclusa. Lo abbiamo usato per oltre una settimana per capire dove l'azienda ha tagliato e dove invece ha tenuto il punto
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 09-02-2008, 08:35   #1
braian
Member
 
L'Avatar di braian
 
Iscritto dal: Apr 2007
Messaggi: 153
[c]errore di i/o in ritorno da funzione

Il seguente codice mi va in segmentation fault al momento del ritorno dalla finzione "createf" richiamata nel main.
Ho fatto il debugger con DDD e mi pare che vada bene tranne che quando dovrebbe ritornare 0 e invecie va in seg fault.
Qualcuno può aiutarmi?
Codice:
 
#include <stdio.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <math.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
#include <stdarg.h>
#include <time.h>		 //per la gestione del time
#include <stdio.h>



int createf(const char *path,const char *mode,char* fmt,...) //funzione con numero di parametri variabile, i primi 2 servono per la fopen, il terzo è una stringa di formato per i parametri variabili. E'un errore nn passare la stringa di formato, al limite passarla vuota per non inserire metadati. Eventuali parametri in più rispetto a quelli specificati nella stringa di formato vengono ignorati.
{
	va_list ap;	//il puntatore a argomento 
	FILE* file; //il file da creare o modificare
	FILE* filesave=fopen("save.sav","a"); //il file di salvataggio delle associazioni
	
	int lung;
	char str[1];
	char* stringa;
	char* sval;
	float fval;
	struct tm * t;
	time_t tx;
	
	if ((file=fopen(path, mode))==NULL)
	{
		printf("errore1");
	}
	fprintf(filesave,"%s,",path);
	va_start(ap,fmt);
	while(*fmt!='\0')
	{
		if(isalpha(*fmt)!=0)
		{
			lung=strcspn(fmt," ");
			stringa=strncpy(str,fmt,lung);
			if(fputs(stringa,filesave)==EOF) //scrive il nome del metadato
			{
				printf("errore2");//gestione errore in fputs
			}
			fmt=fmt+lung; //fmt punta al successivo formato di tipo metadato(%s,%n..)
			if(isspace(*fmt)==0)
			{
				printf("errore3");//trattamento errore, non c'è lo spazio dopo il nome di metadato
			}
			fmt++;
			if(*fmt=='%')
			{
				fmt++;
				switch(*fmt)
				{
					case 's':
						sval=va_arg(ap,char*);
						fprintf(filesave,"%s,",sval);
						fmt++;
						break;
					case 'n':
						fval=va_arg(ap,double);
						fprintf(filesave,"%f,",fval);
						fmt++;
						break;
					case 'd':
						t=va_arg(ap,struct tm*);
						tx=mktime(t);
						if (tx == (time_t) (-1))
      					{
      						printf ("Errore! %ld\n", (long int) tx); //trattamento errore data da rivedere
     					}
    					fprintf(filesave,"%d/%d/%d,",t->tm_mday,t->tm_mon+1,t->tm_year+1900);
    					fmt++;
						break;
					default :
						printf("errore4");//trattamento errore formato sconosciuto
						break;
				}
			}
			else
			{
				printf("errore5");//gestione errore, non c'è % dopo il nome del metadato e lo spazio
			}
		
		}
		
	}
	fprintf(filesave,"\n");
	
	return 0;
	
}



int createfwm(const char *path,const char *mode)
{
	FILE* file;
	FILE* filesave=fopen("save.sav","a"); //il file di salvataggio delle associazioni
	if ((file=(fopen(path, mode)))==((FILE*)NULL))
	{
		return EOF; //gestione errore
	}
	fprintf(filesave,"%s\n",path);
	if(fclose(filesave)==EOF)
	{
		return EOF; //gestione errore
	}
	return 1;
}

int main()
{
	printf("tuttook0\n");
	struct tm* tempo;
	tempo->tm_year=150;
	tempo->tm_mday=15;
	tempo->tm_mon=5;
	char car;
	int a=createfwm("prova.pro","w");
	int b=createfwm("provi.pri","w");
	int c=createfwm("prove.pre","w"); 
	printf("tuttook1");
	int d=createf("provu.pru","w","proprietario %srevisione %ndata %d","paolo",5,tempo);
	printf("tuttook2");
	FILE* fil=fopen("save.sav","r");
	while((car=fgetc(fil))!=EOF)
	{
		if(car=='\0')
		printf("errore");
	}
	printf("tuttook");
	fclose(fil);
	return 1;
}

L'errore che DDD mi da è:
Error accessing memory address 0x86f6972: Input/output error
braian è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


AMD Advancing AI 2026: l'hardware AMD per le elaborazioni IA del futuro, tra GPU, CPU e robot AMD Advancing AI 2026: l'hardware AMD per le ela...
Tascabile e con Android: BOOX Go 6 Gen II è diverso da tutti gli altri e-reader Tascabile e con Android: BOOX Go 6 Gen II &egrav...
Recensione Lenovo Idea Tab Plus: il tablet da 12 pollici che costa meno di 300 euro Recensione Lenovo Idea Tab Plus: il tablet da 12...
Oltre il contante e le crypto: tutto sull'Euro Digitale e la nuova sovranità monetaria europea Oltre il contante e le crypto: tutto sull'Euro D...
Recensione HONOR Magic V6: spessore record e super batteria. È lui il fold da battere? Recensione HONOR Magic V6: spessore record e sup...
La modalità vocale di Claude lasc...
Marvel's Wolverine torna a mostrarsi con...
Aruba AI Site Manager, l'IA per gestire ...
Servono 4 chip Huawei per pareggiare una...
Crollo di benzina e diesel in Europa: le...
Il nuovo trailer del film di Resident Ev...
Star Wars Zero Company svela il cast e p...
Da 0,7 a 20 FPS: Doom domato su una CPU ...
Amazon col caldo fa pazzie: TOP 15 con p...
Lego ricrea Donkey Kong da sala giochi e...
ChatGPT ignora l'embolia polmonare: uten...
Auto nuova a soli 100 euro al mese: cos'...
Kimi K3 non è solo distillazione:...
Assassin's Creed Black Flag: Resynced st...
EUREKA J15 Ultra Gen2 a 399€: aspirazion...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 11:15.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v