Appel du système Linux Strptime en C

Appel du système Linux Strptime en C
La fonction strptime () utilise la syntaxe donnée par le format pour convertir la chaîne de caractères référencée par tampon en données placées dans la structure «TM» référencée par «TM». Ici, le format contient une ou divers directives, mais pas zéro. Une spécification de conversion ou un caractère régulier (pas% ou un espace blanc) peut être trouvé dans une directive. Chaque spécification des conversions consiste en un caractère «%» qui comprend un ou plusieurs caractères de conversion qui définissent le remplacement qui doit être effectué qui indique que le remplacement est nécessaire. Pour vérifier que la fonction fonctionne comme prévu, le format et le tampon doivent avoir un espace blanc ou un autre séparateur. Pour empêcher la première conversion de numéro de conversion de caractères qui correspondent au deuxième spécificateur de conversion, il doit y avoir un séparateur entre les deux conversions de chaîne à nombre.

Exemple 1:

Suivons l'exemple ci-dessous pour voir la fonctionnalité de la fonction Strptime dans le langage C. Ici, nous avons imprimé l'année avec la fonction Strptime. Comme nous le sommes dans l'année «2022», la fonction Strptime sera sortie cette année. À l'intérieur du fichier du programme de C, nous avons saisi le fichier d'en-tête «Temps.h ”à travers lequel nous pouvons obtenir les informations de date et d'heure. Après cela, nous avons établi la fonction dans le principal () du programme.

Ensuite, nous avons créé le tampon pour l'allocation de l'espace pour les nouvelles données. Le tampon est étiqueté comme le «résultat» et le type de données attribué au tampon est Char. Nous avons réglé la taille du tampon «résultat» avec la valeur «100». Ensuite, nous avons construit la variable «temps» avec le type de données «time_t» qui stocke la valeur du temps du système dans le langage C. La variable «Time» est initialisée avec l'appel du système «Time (NULL)». Avec cet appel de système de temps, l'heure actuelle sera récupérée.

Après cela, nous avons utilisé la fonction Strptime qui prend la fonction «Résultat», «Sizeof» et la fonction locale comme des arguments. La fonction localetime entre la référence du «temps» et est utilisée pour représenter le temps présent de notre système. De plus, nous avons utilisé le modificateur «% y» dans la fonction Strptime, qui est utilisé pour afficher l'année du siècle. Dans la dernière ligne du programme, nous avons une déclaration printf où nous avons utilisé le% S. Le spécificateur de format% S de la fonction printf nous permet d'imprimer une chaîne. L'utilisateur a reçu un message qui comprenait l'année en cours.

#inclure
#inclure
int main (int argc, const char * argv [])

Résultat char [100];
time_t time;
Time = temps (null);
strftime (résultat, sizeof (résultat), "% y", localtime (& time));
printf ("Nous sommes en année% s !\ n ", résultat);
retour 0;

Lorsque nous avons exécuté le programme Strptime, l'année en cours «2022» est obtenue dans le shell système.

Exemple 2:

Nous avons vu les performances de la fonction Strptime dans le programme d'exemples précédents. Comme nous l'avons discuté précédemment, la fonction Strptime prend en charge divers modificateurs dans la langue C. Dans cet exemple, nous avons essayé d'utiliser certains des modificateurs Strptime pour explorer leur fonctionnalité. Ici, nous avons utilisé la directive #define pour ajouter la définition _xopen_Source dans la section d'en-tête du programme suivant. Il est utilisé pour saisir les définitions supplémentaires des fonctions qui existent dans les normes X / Open et POSIX.

Ensuite, nous avons également ajouté quelques modules requis des normes C pour la mise en œuvre du programme. Après cela, nous avons construit la fonction principale où nous avons établi la structure «TM» pour définir l'heure. Nous avons déclaré l'objet «TM» pour le «struct tm». Ensuite, nous avons réglé la taille du tampon sur «100» pour la fonction Strptime. Nous avons déployé la fonction memset, qui est connue sous le nom de secteur de mémoire. Comme son nom l'indique, il est utilisé pour remplir les blocs de mémoire avec une valeur sémantique.

Ensuite, nous avons invoqué la fonction Strptime où nous avons donné le format de données et de temps avec les modificateurs Strptime. Le modificateur «% y» est utilisé pour indiquer l'année. «% M-% d» est utilisé pour représenter le mois et le jour. Le modificateur «% h:% m:% s» est formaté d'une manière qui fournira le temps en heures, minutes et secondes. De plus, nous avons utilisé une autre fonction, Strftime, pour nous différencier de la fonction Strptime.
La fonction strftime a créé les caractères à partir de l'objet temporel. Il prend l'argument comme un tampon, la taille du tampon et certains modificateurs. Ensuite, la fonction maintient le «tampon». Le format spécifié de la date et de l'heure sera affiché.

#define _xopen_source
#inclure
#inclure
#inclure
#inclure
int
Main (vide)

struct tm tm;
tampon char [100];
memset (& tm, 0, sizeof (struct tm));
Strptime ("2022-10-9 12:25:05", "% y-% m-% d% h:% m:% s", & tm);
Strftime (tampon, taille (tampon), "% d% b% y% h:% m", & tm);
put (tampon);
exit (exit_success);

En exécutant le programme, nous avons obtenu les données et le temps du format spécifié donné à la fonction.

Exemple 3:

Ici, nous avons affiché la date et l'heure de la région américaine en utilisant la fonction Strptime. Nous avons inséré des bibliothèques standard dans le programme suivant. Ensuite, nous avons déployé la fonction principale où nous définissons la taille du tampon. Après cela, nous avons défini l'objet «temps» avec le type de données «Time_T». Ensuite, nous avons établi la structure «TM» qui déclare l'objet de pointeur «TimePtr» et «Résultat». Ensuite, nous appelons la fonction SetLocale où nous définissons le lieu actuel. L'objet «Time» est défini avec l'appel du système temporel, qui prend NULL comme valeur.

Pour le TimePtr, nous avons attribué la fonction locale, qui est référencée par le «temps». La fonction strftime est utilisée, qui se voit attribuer la date et l'heure formatées. Ensuite, nous avons une condition IF-Else où la condition IF prend la fonction Strptime avec les arguments. Lorsque l'heure et la date spécifiées à l'intérieur de la fonction Strptime sont nuls, l'instruction printf s'exécutera. Sinon, nous avons une autre section à exécuter. La partie ELSE a diverses instructions printf qui utilisent les différents modificateurs de la date et de l'heure.

#define _xopen_source
#inclure
#inclure
#inclure
#inclure
#inclure
int Main (vide)

char buf [100];
time_t time;
struct tm * timeptr, résultat;
setLocale (lc_all, "/ QSYS.Lib / en_us.LIEU");
Time = temps (null);
timePtr = localtime (& time);
strftime (buf, sizeof (buf), "% a% m /% d /% y% r", timeptr);
if (strptime (buf, "% a% m /% d /% y% r", & résultat) == null)
printf ("\ nstrptime a échoué \ n");
autre

printf ("Temps en heure:% d \ n", résultat.tm_hour);
printf ("Time in min:% d \ n", résultat.tm_min);
printf ("Time in sec:% d \ n", résultat.tm_sec);
printf ("Time in Mon:% d \ n", résultat.tm_mon);
printf ("Temps en mois et jour:% d \ n", résultat.tm_mday);
printf ("Temps en année:% d \ n", résultat.tm_year);
printf ("Temps en année et jour:% d \ n", résultat.tm_yday);
printf ("Temps en semaine et jour:% d \ n", résultat.tm_wday);

retour 0;

Les données et le temps convertis suivants sont exécutés contre chaque modificateur de la fonction Strptime.

Conclusion

Ce guide est pour la fonction Linux Strptime dans le langage de programmation C. Nous avons expliqué la fonctionnalité de cette fonction particulière avec l'exemple de codes. Nous avons implémenté ce qui précède et tous les codes sont exécutables avec l'Ubuntu 22.04 Terminal. De plus, nous avons vu la différence entre les deux fonctions, Strptime et Strftime, qui sont en quelque sorte identiques. La fonction Strptime crée une sortie temporelle à partir du texte, l'entrée et la fonction Strftime donne aux données de chaîne de l'entrée temporelle.