2013-03-11 2 views
5

टाइपिंग man strptime टाइपिंग के दौरान कंपाइलर चेतावनी प्राप्त करता है यह कार्य करता है कि इस फ़ंक्शन को _XOPEN_SOURCE घोषित करने की आवश्यकता है और time.h हेडर शामिल है। मैंने यह किया। लेकिन, जब मैं अपने कोड संकलन करने की कोशिश मैं:स्ट्रिप्टाइम फ़ंक्शन (सी)

./check.c:56: चेतावनी:

int lockExpired(const char *date, const char *format, time_t current) { 
     struct tm *tmp = malloc(sizeof(struct tm *)); 
     time_t lt; 
     int et; 

     strptime(date, format, tmp); 
     lt = mktime(tmp); 
     et = difftime(current, lt); 

     if (et < 3600) 
       return -et; 

     return 1; 
} 
: समारोह 'strptime' मेरे कोड पर

देखो की अंतर्निहित घोषणा

इसके अलावा समारोह घोषणा है:

char *strptime(const char *s, const char *format, struct tm *tm);

क्या कोई मुझे बता सकता है कि मेरी समस्या कहां से आती है?

उत्तर

14

मुझे पता चला है कि मुझे खुश होने के लिए __USE_XOPEN और _GNU_SOURCE को परिभाषित करने की आवश्यकता है।

+1

वह था, धन्यवाद! यह अजीब बात है कि मेरी लिनक्स मशीन पर 'मैन स्ट्रिपटाइम' गलत है; यह '_XOPEN_SOURCE' लिखता है जो मेरे लिए काम नहीं करता है। ऐसा कहा जा रहा है, हालांकि मुझे '_GNU_SOURCE' के बारे में निश्चित नहीं है। लगता है कि '__USE_XOPEN' मेरे लिए स्वयं पर काम करता है। – lpapp

+0

सुनिश्चित करें कि आप '#declude ' का उपयोग करने से पहले '#define __USE_XOPEN' का उपयोग करें' –

संबंधित मुद्दे