Ixazululiwe: thola i-pid c

Impela! Nansi indatshana oyicelile:

Ukuqonda ubunkimbinkimbi bokuhlonza inqubo kuyisici esibalulekile sokuqapha i-telemetry ekwakhiweni kwesistimu. Isihlonzi senqubo (PID) inombolo ehlukile eyabelwe inqubo ngayinye uma iqala kumasistimu afana ne-Unix afana nalawo akhiwe ngolimi C.

Omunye wemisebenzi elandelwayo ukubuyisa i-PID umsebenzi we-getpid. I-syntax ilula kakhulu, njengoba ingadingi noma yimaphi amapharamitha, futhi nayo, ivele ibuyisele inani eliphelele, elimele i-PID yenqubo yamanje. Manje ake sijule ekutheni singayithola kanjani ngokuhlelekile i-PID ku-C.

    #include <stdio.h>
    #include <unistd.h>

    int main() {
        printf("The process ID is %dn", getpid());
        return 0;
    }

Ngemva kokufaka imitapo yolwazi edingekayo, sichaze umsebenzi oyinhloko. Ngaphakathi komsebenzi oyinhloko, sinomyalo olula we-printf okhipha okuthi "I-ID yenqubo" ilandelwa yi-PID yangempela, etholwa ngomsebenzi we-getpid.

Ukubaluleka Kokuhlonza Inqubo

Ukuhlonza inqubo kubalulekile njengoba kuvumela ukuxhumana okuphumelelayo nokuvikelekile phakathi kwezinqubo ezahlukene ohlelweni. Iqinisekisa ukuthi izinsiza zabiwa ngendlela efanele futhi zilawulwa phakathi kwezinqubo ezahlukene. Ngaphandle kwama-PID, ukuphatha nokuhlukanisa izinqubo zesistimu kungaba inselele enkulu uma kungewona umsebenzi ongenakwenzeka.

Imitapo yolwazi esetshenzisiwe

Kukhodi yethu, sisebenzise imitapo yolwazi emibili ebalulekile ukuthola i-PID:

  • stdio.h: Leli ifayela elingunhlokweni ngokuvamile eliqukethe isimemezelo sesethi yemisebenzi ehlanganisa imisebenzi yokufaka/yokukhiphayo.
  • i-unistd.h: Imele umtapo wezincwadi ojwayelekile we-Unix, uqukethe izincazelo ezidingekayo nezimemezelo zokushaya izingcingo zesistimu.

Ukuze sijulise ukuqonda kwethu, khumbula ukuthi amalabhulali ahlinzeka ngekhodi ehlanganiswe ngaphambilini engasetshenziswa kabusha, okusindisa onjiniyela ekubhaleni kabusha amakhodi ayinkimbinkimbi. Isibonelo, i-stdio.h isivumela indlela elula yokusebenzelana namadivaysi okufaka noma okukhiphayo kuyilapho i-unistd.h isisiza ekwenzeni amakholi esistimu ngaphandle kokwazi kwethu ubunkimbinkimbi bangaphakathi bohlelo.

Funda kabanzi

Kuxazululiwe: inombolo engahleliwe phakathi kuka-2 ku-C

Ikhiqiza Izinombolo Ezingahleliwe phakathi kuka-2 ngolimi lokuhlela lwe-C

Ikhono lokukhiqiza izinombolo ezingahleliwe lingabaluleka ezinhlotsheni ezithile zemisebenzi yohlelo lwekhompuyutha, ikakhulukazi ekwakhiweni kwe-algorithm noma lapho ukulingiswa kuyadingeka. Kulesi sihloko, sizocubungula isici esibalulekile sohlelo luka-C, olukhiqiza izinombolo ezingahleliwe. Sizothatha ngokuthi unokuqonda okuyisisekelo kolimi lokuhlela lwe-C. U-C uwulimi olunamandla lwenhloso ejwayelekile lokho kunikeza abahleli bezinhlelo ukulawula nokusebenza kahle okwengeziwe, kube kuhle kakhulu ezinhlelweni ezisezingeni eliphansi

Funda kabanzi

Kuxazululiwe: phrinta ngopinki ngo-c

Impela, asiqalise!

Phrinta ngopinki isitatimende sokuphrinta esinombala opinki ophumayo wombhalo ohlelweni luka-C. Lo msebenzi wokuhlela awuwona ovamile, kodwa uthakazelisa impela futhi ubonisa ukuguquguquka nokuguquguquka kwe-C. Umsebenzi uhlukile kodwa ikuvumela ukuthi uqonde ukuthi kufanele ulawule ukulungiselelwa kwesibonisi setheminali ukuze uwufeze.

Funda kabanzi

Kuxazululiwe: c va_list isibonelo

Kuhlelo lwe-C, ukuphatha imisebenzi ngama-agumenti ahlukahlukene kubalulekile. Cabanga usebenzisa umsebenzi owamukela inani elihlukile lama-agumenti. Ingabe lokho bekungeke kubonise ukuthi ikhodi yakho ivumelana nezidingo zohlelo lokusebenza, ngaleyo ndlela ithuthukise ukuguquguquka nokusebenza kwayo? Namuhla, sizongena esicini esisodwa esimangalisayo esinikezwa ulimi lokuhlela lwe-C - va_list - esicini esingaphakathi kwelabhulali ye-stdarg.h esetshenziselwa ukuphatha imisebenzi enjalo.

Funda kabanzi

Ixazululiwe: myFgets in c

Impela, ake siqale nge-athikili:

I-myFgets ingomunye wemisebenzi eyisisekelo ku-C yokuthola okokufaka kumsebenzisi. Iyingxenye yomtapo wezincwadi we-stdio futhi igqama njengenye indlela ephephile kwabanye ozakwabo njenge-scaf, ngenxa yamandla ayo okuvimbela ukuchichima kwebhafa.

#include <stdio.h>

#define SIZE 100

int main()
{
    char str[SIZE];

    printf("Enter a string: ");
    if(fgets(str, SIZE, stdin) != NULL)
    {
        printf("You entered: ");
        puts(str);
    }

    return 0;
}

Ngemva kokuqala ngesingeniso esifushane mayelana ne-myFgets, ikhodi C enikeziwe ngenhla isebenzisa umsebenzi we-myFgets ukuze uthole okokufaka kweyunithi yezinhlamvu kumsebenzisi.

Isebenza kanjani i-myFgets?

Umsebenzi we-fgets ukufunda iyunithi yezinhlamvu kusukela kokokufaka okujwayelekile (stdin), ngokuvamile ikhibhodi. Umsebenzi we-fgets awufani neminye imisebenzi yokufaka ku-C esidingweni sawo samapharamitha amathathu: ibhafa ongafunda kuyo okokufaka, usayizi omkhulu webhafa, kanye nokusakaza okokufaka okufundwa kukho. Ngokukhethekile, ngemva kokufunda iyunithi yezinhlamvu, i-fgets yengeza uhlamvu olungenalutho ('') kuze kube sekugcineni.

Ukuqonda ikhodi engenhla

Umsebenzi ochazwe ngenhla uqala ngokumemezela iyunithi yezinhlamvu (i-char array) yosayizi othile (SIZE). Bese itshela umsebenzisi ukuthi afake iyunithi yezinhlamvu. Ekufakweni komsebenzisi, isitatimende esinemibandela sihlola ukuthi umsebenzi we-fget ukwazile yini ukufunda uchungechunge. Uma ikwazile, iyaqhubeka nokuphrinta iyunithi yezinhlamvu efanayo emuva esikrinini isebenzisa umsebenzi we-puts.

Ekuqondeni ubudlelwano phakathi kwama-fget, usayizi webhafa kanye nokuvimbela ukuchichima kwebhafa, kubalulekile ukuqaphela ukuthi inani lezinhlamvu ezifundwa ama-fget lingaphansi kokukodwa kukaSIZE oshiwo. Lokhu kwenziwa ukuze kufakwe uhlamvu olungenalutho ekugcineni kokufaka.

Imitapo yolwazi efanelekile kanye nemisebenzi

Ngokwemitapo yolwazi, i-stdio.h ingenye yemitapo yolwazi eyisisekelo kakhulu ku-C, esetshenziselwa imisebenzi yokufaka/yokukhiphayo. Indlela yokusebenzisa ilula njengokuyifaka ekuqaleni kwekhodi C usebenzisa isiyalelo esithi #include.

Mayelana nemisebenzi esetshenziswe kule khodi, i-fgets ingeyalo mtapo wolwazi, kanye nama-puts and printf. Ngenkathi i-fgets icwaninga, i- puts isetshenziselwa ukubhala iyunithi yezinhlamvu ukuze ifinyelele kodwa ingafaki uhlamvu olungenalutho. Umsebenzi we-printf wenza uchungechunge lwedatha yokuphumayo, ngokusekelwe kuchungechunge lwefomethi nama-agumenti.

Sicela uqaphele ukuthi ngendlela ephephile nesebenzayo yokufaka iyunithi yezinhlamvu evela kumsebenzisi, i-myFgets inerekhodi eliqinisekisiwe endaweni yezinhlelo ze-C, ngokuhlanganisa usayizi wokokufaka, futhi ngaleyo ndlela ivimbele ukuchichima kwebhafa okungaba khona.

Funda kabanzi

Ixazululiwe: uhlobo lwebhamuza c

Impela, ngiyakwazi ukuwenza lo msebenzi! Nansi indlela engingaqala ngayo indatshana:

Ukuhlunga ama-algorithms ayingxenye ebalulekile yesayensi yekhompiyutha nohlelo ngoba asivumela ukuthi si-ode kahle idatha. Enye yezindlela ezilula futhi ezinembile zokuhlunga i-Bubble Sort, i-algorithm esekelwe ekuqhathaniseni ehamba ngokuphindaphindiwe phakathi nohlu, iqhathanise izakhi eziseduze, futhi izishintshanisa uma zilandelana okungalungile. Ukudlula kumalungu afanayo kwenziwa ngokuphindaphindiwe kuze kube yilapho kungabikho ukushintshwa okudingekayo, okubonisa ukuthi uhlu luhlungiwe.

Ukuhlunga Kwebhamuza akuyona i-algorithm yokuhlunga esebenzayo yezinhlu ezinkulu, kodwa ngenxa yobulula bayo, ivamise ukufundiswa ezifundweni ezethulo zesayensi yekhompyutha. Nakuba isilinganiso sayo nesikhathi esibi kakhulu sesikhathi esiyinkimbinkimbi O (n ^ 2) ingase ikwenze ukukhetha okungalungile kumadathasethi amakhulu, kusengaba usizo ezimweni ezithile zokusetshenziswa lapho ubulula kanye nokusebenziseka kalula kubaluleke ngaphezu kokusebenza okungahluziwe.

#hlanganisa

I-bubbleSort engenalutho(int array[], usayizi wangaphakathi) {
ngoba (int isinyathelo = 0; isinyathelo < size - 1; ++step) {for (int i = 0; i < size - isinyathelo - 1; ++i) {uma (array[i] > array[i + 1 ]) {
int temp = uhlu[i];
uhlu[i] = uhlu[i + 1];
uhlu[i + 1] = izinga lokushisa;
}
}
}
}

i-void printArray(int array[], int size) {
ngoba (int i = 0; i < size; ++i) printf("%d", array[i]); printf("n"); } int main() { int data[] = {-2, 45, 0, 11, -9}; int size = sizeof(data) / sizeof(data[0]); I-bubbleSort(idatha, usayizi); printf("Izinhlu Ezihleliwe Ngohlelo Olukhuphukayo:n"); printArray(idatha, usayizi); buyisela 0; } [/ikhodi]

Funda kabanzi

Kuxazululiwe: uhlobo lochungechunge

Uma sikhuluma ngokuhlunga ku-paradigm yokuhlela, kuthathwa njengokunye kwemisebenzi ebaluleke kakhulu futhi kuvame ukudingeka lapho kwakhiwa izinhlelo zokusebenza. Kusayensi yekhompiyutha, i-algorithm yokuhlunga iyindlela esetshenziselwa ukuhlela kabusha izakhi zohlu ngokulandelana okuthile, kungaba ukwenyuka kwezinombolo noma ukwehla noma ngokwesichazamazwi. Kulesi simo, sizogxila kakhulu enkingeni yokuhlunga uchungechunge endaweni yezinhlelo ze-C, ukusebenza kwayo, kanye nendlela olunikeza ngayo izixazululo eziphumelelayo.

#hlanganisa
uhlobo olungenalutho(int array[], int n) {
ngoba (int isinyathelo = 0; isinyathelo <n - 1; ++step) {int min_idx = isinyathelo; ngoba (int i = isinyathelo + 1; i < n; ++i) {uma (amalungu afanayo[i] < array[min_idx]) {min_idx = i; } } int temp = uhlu[min_idx]; uhlu[min_idx] = uhlu[isinyathelo]; uhlu[isinyathelo] = izinga lokushisa; } } [/ikhodi]

Funda kabanzi

Kuxazululiwe: ubhalwa kanjani umsebenzi ozophrintwa njalo ngeminithi yosuku ngo-c

Ukubhala uhlelo lokusebenza ngo-C oluphrinta yonke iminithi yosuku kungase kubonakale kuyinselele ethakazelisayo, ikakhulukazi uma ungumuntu osaqalayo ukuhlela. Ngenhlanhla, ulimi lokuhlela lwe-C lunikeza inqwaba yamalabhulali nemisebenzi esingayisebenzisa ukuxazulula le nkinga. Ngaphambi kokungena esixazululweni senkinga, kubalulekile ukuqonda ukuthi lo msebenzi uhlanganisani. Ngokuyisisekelo, inhloso lapha ukubhala uhlelo C oluzophrinta yonke imizuzu ngosuku, kusukela ngo-00:00 kuya ku-23:59.

Funda kabanzi