Isonjululwe: fumana pid c

Ngokuqinisekileyo! Nali inqaku olicelileyo:

Ukuqonda ubunzima bokuchongwa kwenkqubo ngumba obalulekileyo wokujongwa kwe-telemetry kuyilo lwenkqubo. Isichongi senkqubo (PID) linani elilodwa elabelwe inkqubo nganye xa iqalisa kwiinkqubo ezifana ne-Unix ezifana nezo zakhiwe ngolwimi lwe-C.

Omnye wemisebenzi ebambelele ekufumaneni kwakhona i-PID ngumsebenzi we-getpid. I-syntax ilula kakhulu, njengoko ayifuni naziphi na iiparamitha, kwaye ngokulandelelana, ibuyisela ixabiso elipheleleyo, elimele i-PID yenkqubo yangoku. Ngoku makhe singene nzulu kwindlela esinokuyifumana ngayo i-PID ngokwenkqubo kwi-C.

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

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

Emva kokuquka amathala eencwadi ayimfuneko, sichaze owona msebenzi ungundoqo. Ngaphakathi komsebenzi ongundoqo, sinomyalelo olula weprintf ovelisa "I-ID yenkqubo" ilandelwa yi-PID yokwenyani, efunyanwa nge-getpid function.

Ukubaluleka kokuchongwa kweNkqubo

Ukuchongwa kwenkqubo kubalulekile njengoko kuvumela unxibelelwano olusebenzayo nolukhuselekileyo phakathi kweenkqubo ezahlukeneyo kwinkqubo. Iqinisekisa ukuba izibonelelo zoncedo zabiwa kwaye zilawulwa ngokuchanekileyo phakathi kweenkqubo ezahlukeneyo. Ngaphandle kwee-PIDs, ukulawula kunye nokwahlula iinkqubo zenkqubo kuya kuba ngumngeni omkhulu ukuba ayingomsebenzi ongenakwenzeka.

Amathala eencwadi asetyenzisiweyo

Kwikhowudi yethu, sisebenzise amathala eencwadi amabini abalulekileyo ukufumana i-PID:

  • stdio.h: Le yifayile yeheader equlathe isibhengezo semisebenzi ebandakanya igalelo/imveliso yemisebenzi.
  • unitd.h: Imele ilayibrari esemgangathweni ye-Unix, iqulethe iinkcazo eziyimfuneko kunye nezibhengezo zokuqhuba iminxeba yenkqubo.

Ukwenza nzulu ukuqonda kwethu, khumbula ukuba amathala eencwadi abonelela ngekhowudi esele ihlanganiswe enokuthi iphinde isetyenziswe, igcina abaphuhlisi ekubhaleni kwakhona iikhowudi ezinzima. Umzekelo, i-stdio.h isinika indlela elula yokunxibelelana nezixhobo zokungenisa okanye eziphumayo ngelixa unistd.h isinceda ekwenzeni iminxeba yenkqubo ngaphandle kokwazi ubucukubhede bangaphakathi benkqubo.

Funda Okuninzi

Isonjululwe: inani elingenamkhethe phakathi kwe-2 ku-C

Ukuveliswa kwamanani aRandom phakathi kwe-2 kuLwimi lokuCwangcisa lweC

Ukukwazi ukuvelisa amanani angaqhelekanga kunokubaluleka kwiintlobo ezithile zemisebenzi yeprogram yekhompyutheni, ngokukodwa kuyilo lwe-algorithm okanye apho ukulinganisa kuyadingeka. Kweli nqaku, siza kuphonononga umba osisiseko we-C programming, ovelisa amanani angaqhelekanga. Siza kucinga ukuba unokuqonda okusisiseko kolwimi lwenkqubo lwe-C. C lulwimi olunenjongo jikelele enamandla oko kunika abadwelisi ulawulo ngakumbi kunye nokusebenza kakuhle, ukugqwesa udweliso lwenkqubo kwinqanaba eliphantsi

Funda Okuninzi

Isonjululwe: printa ngopinki ngo-c

Ngokuqinisekileyo, masiqalise!

Shicilela ngopinki yingxelo yoshicilelo enemibala epinki yokubhaliweyo okuphumayo kudweliso lwenkqubo lweC. Lo msebenzi wodweliso ayingowona uqhelekileyo, kodwa unika umdla kakhulu kwaye ubonisa ukuguquguquka nokuguquguquka kwe C. Umsebenzi wahlukile kodwa ikuvumela ukuba uqonde ukuba kufuneka uqhathe njani uqwalaselo lwesiphelo sendlela yokuwuphumeza.

Funda Okuninzi

Isonjululwe: c va_list umzekelo

Kwinkqubo ye-C, ukuphatha imisebenzi ngeengxoxo eziguquguqukayo kubalulekile. Yiba nomfanekiso-ngqondweni usebenzisa umsebenzi owamkela inani eliguquguqukayo leempikiswano. Ngaba oko bekungayi kuthetha ukuba ikhowudi yakho ihambelana neemfuno zesicelo, ngaloo ndlela iphucula ukuguquguquka kwayo kunye nokusebenza kwayo? Namhlanje, siza kuntywila kolu phawu lumangalisayo olubonelelwa lulwimi lwenkqubo lwe-C - va_list - kwindawo engaphakathi kwethala leencwadi le-stdarg.h elisetyenziselwa ukuphatha imisebenzi enjalo.

Funda Okuninzi

Isonjululwe: myFgets in c

Ngokuqinisekileyo, masiqalise ngenqaku:

myFgets ngomnye wemisebenzi esisiseko kwi-C yokufumana igalelo kumsebenzisi. Iyinxalenye yethala leencwadi le-stdio kwaye igqame njengenye indlela ekhuselekileyo kwamanye amaqabane anjenge-scaf, ngenxa yesakhono saso sokuthintela ukuphuphuma kwebuffer.

#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;
}

Emva kokuqala ngentshayelelo emfutshane malunga ne-myFgets, ikhowudi ye-C enikiweyo ngasentla isebenzisa umsebenzi we-myFgets wokufumana igalelo lomtya kumsebenzisi.

Isebenza njani i-myFgets?

Umsebenzi we fgets kukufunda umtya kwigalelo elisezantsi (stdin), ngesiqhelo ibhodi yezitshixo. Umsebenzi we-fgets awufani neminye imisebenzi yegalelo kwi-C kwimfuno yayo yeparameters ezintathu: isikhuseli sokufunda igalelo kulo, ubungakanani obukhulu bebuffer, kunye negalelo lomlambo ukufunda ukusuka. Ngokukodwa, emva kokufunda umtya, i-fgets idibanisa unobumba ongekho ('') ukuya esiphelweni.

Ukuqonda ikhowudi engentla

Umsebenzi ochazwe ngasentla uqala ngokubhengeza umtya (char uluhlu) lobungakanani obuthile (SIZE). Emva koko ikhuthaza umsebenzisi ukuba angenise umtya. Ngegalelo lomsebenzisi, ingxelo enemiqathango ijonga ukuba ngaba umsebenzi wefget ukwazile ukufunda umtya. Ukuba ibikwazi, iyaqhubeka nokuprinta umtya ofanayo emva kwesikrini usebenzisa ibeka umsebenzi.

Ekuqondeni unxulumano phakathi kwee-fgets, ubungakanani bebuffer kunye nokuthintela ukuphuphuma kwebuffer, kubalulekile ukuqaphela ukuba inani lamagama afundwa yi-fgets lingaphantsi kweSIZE echaziweyo. Oku kwenzelwa ukulungiselela unobumba ongekhoyo ekupheleni kwegalelo.

Amathala eencwadi afanelekileyo kunye nemisebenzi

Ngokubhekiselele kumathala eencwadi, i-stdio.h lelinye lawona mathala eencwadi asisiseko ku-C, asetyenziselwa imisebenzi yegalelo/imveliso. Indlela yokusetyenziswa ilula njengokuyibandakanya ekuqaleni kwekhowudi ye-C usebenzisa i-#include directive.

Ngokuphathelele kwimisebenzi eqeshwe kule khowudi, i-fgets yeyele thala leencwadi, kunye ne-puts kunye ne-printf. Ngelixa i-fgets iphanda, ibeka isetyenziselwa ukubhala umtya ukuya kwi-stdout ukuya kuthi ga kodwa ingabandakanyi unobumba ongekho. Umsebenzi printf wenza uluhlu lwedatha yemveliso, ngokusekelwe kuluhlu lwamagama kunye neengxoxo.

Nceda uqaphele ukuba indlela ekhuselekileyo nesebenzayo yokufaka umtya ovela kumsebenzisi, i-myFgets inerekhodi eqinisekisiweyo kwindawo yenkqubo ye-C, ngokubopha ubungakanani begalelo, kwaye ngaloo ndlela inqanda ukuphuphuma kwebuffer enokubakho.

Funda Okuninzi

Isonjululwe: uhlobo lweqamza c

Ngokuqinisekileyo, ndiyakwazi ukuwenza lo msebenzi! Nantsi indlela endiya kuliqala ngayo inqaku:

Ukuhlela iialgorithms yinxalenye ebalulekileyo yesayensi yekhompyuter kunye nenkqubo kuba zisivumela ukuba siodole ngokufanelekileyo idatha. Obona buchule bulula nobobona bulula bokuhlela bubuBubble Sort, i-algorithm esekwe kuthelekiso ephindaphinda ukunyathela kuluhlu, ithelekisa izinto ezimeleneyo, kwaye itshintshise ukuba ikwindlela engalunganga. Ukudlula kwi-array kwenziwa ngokuphindaphindiweyo de akukho swaps efunekayo, ebonisa ukuba uluhlu luhlelwe.

IBubble Sort ayiyondlela esebenzayo yokuhlela uluhlu loluhlu olukhulu, kodwa ngenxa yokulula kwayo, ihlala ifundiswa kwintshayelelo yezifundo zesayensi yekhompyuter. Nangona i-avareji yayo kunye nexesha elibi kakhulu lokuntsonkotha kwe O (n ^ 2) inokwenza ukhetho olubi kwiiseti zedatha enkulu, isenokusebenza kwiimeko ezithile zosetyenziso apho ubulula kunye nokulula kokuphumeza umcimbi ongaphezulu kunokusebenza ekrwada.

# kuquka

UHlulo lwamaqamza olungenanto(uluhlu lwangaphakathi[], ubukhulu bangaphakathi) {
kuba (int inyathelo = 0; inyathelo < ubukhulu - 1; ++ inyathelo) {ye (int i = 0; i < ubukhulu - inyathelo - 1; ++i) {ukuba (uluhlu[i] > uluhlu[i + 1 ]) {
int temp = uluhlu[i];
uluhlu[i] = uluhlu[i + 1];
uluhlu[i + 1] = temp;
}
}
}
}

i-void printArray(int kuluhlu[], ubukhulu bangaphakathi) {
ye (int i = 0; i < ubukhulu; ++i) printf("%d ", uluhlu[i]); printf("n"); } int main() { int data[] = {-2, 45, 0, 11, -9}; ubungakanani bangaphakathi = ubukhulu be(data) / sizeof(data[0]); I-bubbleSort(idatha, ubungakanani); printf("Izintlu ezihleliweyo ngolandelelwano olunyukayo:n"); printArray(idatha, ubungakanani); buyisela i-0; } [/ikhowudi]

Funda Okuninzi

Isonjululwe: uhlobo lothotho

Xa sithetha malunga nokuhlelwa kwiparadigm yenkqubo, ithathwa njengowona msebenzi ubalulekileyo kwaye ihlala ifuneka xa uphuhlisa izicelo. Kwinzululwazi yekhompyuter, i-algorithm yokuhlela yindlela esetyenziswayo ukuhlengahlengisa izinto zoluhlu ngokolandelelwano oluthile, nokuba kukwenyuka ngokwamanani okanye ukuhla okanye ngokwezichazi-magama. Kule meko, siza kugxila ikakhulu kuluhlu lwengxaki yohlobo lwenkqubo yeC, ukusebenza kwayo, kunye nendlela enikezela ngayo izisombululo ezifanelekileyo.

# kuquka
uhlobo olungenanto (int array[], int n) {
kuba (int step = 0; inyathelo <n - 1; ++step) { int min_idx = inyathelo; kuba (int i = inyathelo + 1; i <n; ++i) {ukuba (uluhlu[i] < array[min_idx]) { min_idx = i; } } int temp = uluhlu[min_idx]; uluhlu[min_idx] = uluhlu[inyathelo]; uluhlu[inyathelo] = temp; } } [/ikhowudi]

Funda Okuninzi

Isonjululwe: indlela yokubhala umsebenzi wokuprinta umzuzu ngamnye wosuku ngo-c

Ukubhala isicelo kwi-C esiprinta yonke imzuzu yosuku kunokubonakala njengomngeni onomdla, ngakumbi ukuba ungumntu oqalayo kudweliso lwenkqubo. Ngethamsanqa, ulwimi lwenkqubo lwe-C lubonelela ngobuninzi bamathala eencwadi kunye nemisebenzi esinokuyisebenzisa ukusombulula le ngxaki. Ngaphambi kokungena kwisisombululo sengxaki, kubalulekile ukuqonda ukuba lo msebenzi ubandakanya ntoni. Ngokusisiseko, injongo apha kukubhala inkqubo C eya kushicilela yonke imizuzu ngosuku, ukusuka ngo-00:00 ukuya ku-23:59.

Funda Okuninzi