System systemu Linux w C w C

System systemu Linux w C w C
Funkcja strPTime () używa składni podanej przez format do konwersji ciągu znaków odwołany przez bufor na dane umieszczone w strukturze „TM”, do której odwołuje się „TM”. Tutaj format zawiera jedną lub różne dyrektywy, ale nie zero. Specyfikacja konwersji lub zwykła znak (nie% lub biała przestrzeń) można znaleźć w dyrektywie. Każda specyfikacja konwersji składa się z postaci „%”, który zawiera jeden lub więcej znaków konwersji, które określają wymianę, która ma być wskazana, że ​​zastąpienie jest potrzebne. Aby sprawdzić, czy funkcja działa zgodnie z oczekiwaniami, zarówno format, jak i bufor muszą mieć białą przestrzeń lub inny separator. Aby utrzymać konwersję pierwszej liczby z konwersji znaków odpowiadających drugiej specyfikatorowi konwersji, musi istnieć separator między dwoma konwersjami od strzyżu do numeru.

Przykład 1:

Postępujmy zgodnie z poniższym przykładem, aby zobaczyć funkcjonalność funkcji strptime w języku C. Tutaj wydrukowaliśmy rok z funkcją SPRPTime. Jak jesteśmy w roku „2022”, funkcja SPRPTime zostanie wyprowadzona w tym roku. W pliku programu C, wprowadzamy plik nagłówka „Czas.h ”, przez które możemy uzyskać informacje o dacie i godzinie. Następnie ustaliliśmy funkcję w programie Main ().

Następnie stworzyliśmy bufor dla alokacji przestrzeni dla nowych danych. Bufor jest oznaczony jako „wynik”, a typ danych przypisany do bufora jest Char. Ustawiliśmy rozmiar „wyniku” bufora z wartością „100”. Następnie skonstruowaliśmy zmienną „czas” z typem danych „TIME_T”, który przechowuje wartość czasu systemu w języku C. Zmienna „czas” jest inicjowana przez wywołanie systemowe „czas (null)”. Z tym czasem połączenie systemowe zostanie pobrany bieżący czas.

Następnie zastosowaliśmy funkcję strptime, która przyjmuje funkcję „wynika”, „sizeof” i funkcję czasu lokalnego jako argumenty. Funkcja lokalnego czasu wprowadza odniesienie „czasu” i jest używana do reprezentowania obecnego czasu naszego systemu. Ponadto zastosowaliśmy modyfikator „%y” w funkcji Strptime, która służy do wyświetlania roku w stuleciu. W ostatnim wierszu programu mamy instrukcję printf, w której użyliśmy %s. Specyfikator formatu %S printF Funkcja pozwala nam wydrukować ciąg. Użytkownik otrzymał wiadomość obejmującą bieżący rok.

#włączać
#włączać
int main (int argc, const char * argv [])

Rezultat char [100];
time_t czas;
Czas = czas (null);
Strftime (wynik, sizeof (wynik), „%y”, localtime (i czas));
printf („Jesteśmy w roku %s !\ n ”, wynik);
powrót 0;

Kiedy wykonaliśmy program SPRPTIME, bieżący rok „2022” jest uzyskiwany w skorupce systemowej.

Przykład 2:

Widzieliśmy wydajność funkcji SPRPTIME w poprzednim programie. Jak omówiliśmy wcześniej, funkcja strptime obsługuje różne modyfikatory w języku C. W tym przykładzie próbowaliśmy użyć niektórych modyfikatorów SPRPTime do zbadania ich funkcjonalności. Tutaj użyliśmy dyrektywy #Define, aby dodać definicję _xopen_source w sekcji nagłówka następującego programu. Służy do wprowadzania dodatkowych definicji funkcji, które istnieją w standardach x/otwarte i posix.

Następnie dodaliśmy również niektóre wymagane moduły standardów C do wdrażania programu. Następnie skonstruowaliśmy główną funkcję, w której ustaliliśmy strukturę „TM” do zdefiniowania czasu. Obiekt „TM” zadeklarowaliśmy „TM” dla „struktury TM”. Następnie ustawiamy rozmiar bufora na „100” dla funkcji SPRPTIME. Wdrażaliśmy funkcję memset, znaną jako setek pamięci. Jak sama nazwa wskazuje, służy do wypełnienia bloków pamięci wartością semantyczną.

Następnie powołaliśmy się do funkcji strptime, w której podaliśmy format danych i czasu z modyfikatorami SPRPTime. Modyfikator „%y” służy do wskazania roku. „%M-%D” służy do reprezentowania miesiąca i dnia. Modyfikator „%h:%m:%s” jest sformatowany w sposób, który zapewni czas w godzinach, minutach i sekundach. Ponadto wykorzystaliśmy inną funkcję, Strftime, do odróżnienia od funkcji Strptime.
Funkcja Strftime utworzyła znaki z obiektu czasowego. Zajmuje argument jako bufor, rozmiar bufora i niektóre modyfikatory. Następnie Funkcja Putuje „bufor”. Wyświetlony zostanie określony format daty i godziny.

#Define _xopen_source
#włączać
#włączać
#włączać
#włączać
int
Main (pustka)

struct tm tm;
Char Buffer [100];
memset (i tm, 0, sizeof (struct tm));
Strptime („2022-10-9 12:25:05”, „%y-%m-%d%h:%m:%s” i tm);
Strftime (bufor, rozmiar (bufor), „ %d %b %y %h: %m” i tm);
Puts (bufor);
exit (exit_success);

Wykonując program, uzyskaliśmy dane i czas w określonym formacie podanym funkcji.

Przykład 3:

Tutaj pokazaliśmy datę i godzinę regionu amerykańskiego za pomocą funkcji SPRPTIME. Wprowadziliśmy standardowe biblioteki do następującego programu. Następnie wdrożyliśmy główną funkcję, w której ustawiamy rozmiar bufora. Następnie zdefiniowaliśmy obiekt „czas” z typem danych „TIME_T”. Następnie ustaliliśmy strukturę „TM”, która deklaruje obiekt wskaźnika „Timptr” i „Wynik”. Następnie wywołujemy funkcję setLocale, w której ustawiamy bieżącą regionę. Obiekt „czasu” jest ustawiony z wywołaniem systemu czasu, który bierze NULL jako wartość.

Do TimePtr przypisaliśmy funkcję miejscową, do której odwołuje się „czas”. Zastosowana jest funkcja Strftime, która przypisuje się sformatowaną datę i godzinę. Następnie mamy warunek IF-ELSE, w którym warunek IF bierze funkcję Strptime z argumentami. Gdy określona godzina i data wewnątrz funkcji SPRPTIME jest null, instrukcja printf zostanie wykonana. W przeciwnym razie mamy inną sekcję do wykonania. W końcu część ma różne instrukcje printf, które wykorzystują różne modyfikatory dla daty i godziny.

#Define _xopen_source
#włączać
#włączać
#włączać
#włączać
#włączać
int Main (void)

char BUF [100];
time_t czas;
struct tm *timptr, wynik;
setLocale (LC_ALL, "/QSYS.Lib/en_us.WIDOWNIA");
Czas = czas (null);
TimePtr = LocalTime (& Time);
Strftime (BUF, sizeof (BUF), „%A%m/%d/%y%r”, timptr);
if (strptime (buf, „%a%m/%d/%y%r” i wynik) == null)
printf („\ nstrptime nie powiodło się \ n”);
w przeciwnym razie

printf („Czas w godzinie: %d \ n”, wynik.tm_hour);
printf („czas w min: %d \ n”, wynik.tm_min);
printf („czas w sekcji: %d \ n”, wynik.tm_sec);
printf („Czas w ponownym: %d \ n”, wynik.tm_mon);
printf („Czas w miesiącu i dniu: %d \ n”, wynik.tm_mday);
printf („Czas w roku: %d \ n”, wynik.tm_year);
printf („Czas w roku i dnia: %d \ n”, wynik.tm_yday);
printf („Czas w tygodniu i dnia: %d \ n”, wynik.tm_wday);

powrót 0;

Poniższe przekonwertowane dane i czas są wykonywane w stosunku do każdego modyfikatora funkcji Strptime.

Wniosek

Ten przewodnik dotyczy funkcji Linux Strptime w języku programowania C. Wyjaśniliśmy funkcjonalność tej konkretnej funkcji za pomocą przykładowych kodów. Wdrożyliśmy powyższe i wszystkie kody można wykonywać za pomocą Ubuntu 22.04 Terminal. Ponadto widzieliśmy różnicę między dwiema funkcjami, strptime i strftime, które są w jakiś sposób identyczne. Funkcja SPRPTime tworzy wyjście czasowe z tekstu, wejścia i funkcji Strftime podaje dane ciągów od wprowadzania czasu.