国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

C/C++進(jìn)程超詳細(xì)詳解【下部分】(系統(tǒng)性學(xué)習(xí)day8)

這篇具有很好參考價(jià)值的文章主要介紹了C/C++進(jìn)程超詳細(xì)詳解【下部分】(系統(tǒng)性學(xué)習(xí)day8)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

目錄

前言

一,有名管道通信

1 .概念

2 .創(chuàng)建有名管道

實(shí)例代碼如下:

二、信號(hào)通信

1 .概念

2 .用戶進(jìn)程對(duì)信號(hào)的響應(yīng)方式

3. 用戶進(jìn)程對(duì)常用信號(hào)的缺省操作

4. 信號(hào)處理流程

5. 信號(hào)相關(guān)函數(shù)(系統(tǒng)調(diào)用)

?5.1 kill - 給指定進(jìn)程發(fā)送信號(hào)

實(shí)例代碼如下:?

5.2 raise() --給當(dāng)前進(jìn)程發(fā)送信號(hào) ?

實(shí)例代碼如下:?

5.3 alarm() 在進(jìn)程中設(shè)置定時(shí)器(鬧鐘) ?

實(shí)例代碼如下:?

5.4 pause() 使進(jìn)程掛起 ?

?實(shí)例代碼如下:

5.5 signal 注冊(cè)信號(hào) ?

實(shí)例代碼如下:?

總結(jié)


前言

上篇博客對(duì)C/C++進(jìn)程的中部分進(jìn)行了詳細(xì)講解,本篇博客將繼續(xù)講解和補(bǔ)充關(guān)于線程的知識(shí)點(diǎn)。


一,有名管道通信

1 .概念

1.由于無(wú)名管道只能用于具有親緣關(guān)系的進(jìn)程之間,這就限制了無(wú)名管道的使用范圍。

2.而有名管道可以使互不相關(guān)的兩個(gè)進(jìn)程互相通信。有名管道可以通過(guò)路徑名來(lái)指出,并且在文件系統(tǒng)中可見(jiàn)

3.進(jìn)程通過(guò)文件IO來(lái)操作有名管道

2 .創(chuàng)建有名管道

#include <sys/types.h>
#include <sys/stat.h>
int mkfifo(const char *pathname, mode_t mode);
//參數(shù)1 ---- 管道的名稱
//參數(shù)2 ---- 管道的權(quán)限
//返回值 -----成功:0,失?。?1

例如:

int main(int argc ,char **argv)
? ? {

? ? ? ? if(argc != 2){
? ? ? ? ? ? fprintf(stderr,"Usage: %s <fifoname>\n",argv[0]);
? ? ? ? ? ? exit(1);
? ? ? ? }

? ? ? ? //創(chuàng)建有名管道
? ? ? ? if(mkfifo(argv[1],0666) < 0){ ? //管道權(quán)限= 0666 & ~umusk
? ? ? ? ? ? perror("mkfifo");
? ? ? ? ? ? exit(1);
? ? ? ? }

? ? ? ? return 0;
? ? }

實(shí)例代碼如下:

//從管道讀10個(gè)整數(shù),然后排序,并打印
int main(int argc ,char **argv)
{
    int fd;
    int a[10],i,j,flag;
    if(argc != 2){
        fprintf(stderr,"Usage: %s <fifoname>\n",argv[0]);
        exit(1);
    }

    //判斷管道文件是否存在,如果不存在則創(chuàng)建,存在則直接打開(kāi)
    if(access(argv[1],F_OK)){
        //創(chuàng)建有名管道
        if(mkfifo(argv[1],0666) < 0){   //管道權(quán)限= 0666 & ~umusk
            perror("mkfifo");
            exit(1);
        }
    }

    //打開(kāi)管道
    if((fd = open(argv[1],O_RDWR)) < 0){
        perror("open");
        exit(1);
    }

    //從管道中讀10個(gè)整數(shù)
    if(read(fd,a,sizeof(a)) < 0){
        perror("read");
        exit(1);
    }

    //排序
    for(i = 0; i < 9; i++){
        flag = 1;
        for(j = 0; j < 9-i; j++)
            if(a[j] > a[j+1]){
                a[j] = a[j] + a[j+1];
                a[j+1] = a[j] - a[j+1];
                a[j] = a[j] - a[j+1];
                flag = 0;
            }
        if(flag)
            break;
    }
    for(i = 0; i < 10; i++){
        printf("%d  ",a[i]);
        fflush(stdout);
        sleep(1);
    }
    printf("\n");
    close(fd);

    return 0;
}
//從鍵盤(pán)輸入10個(gè)整數(shù),并寫(xiě)入管道
int main(int argc ,char **argv)
{
    int fd;
    int a[10],i;
    if(argc != 2){
        fprintf(stderr,"Usage: %s <fifoname>\n",argv[0]);
        exit(1);
    }

    //判斷管道文件是否存在,如果不存在則創(chuàng)建,存在則直接打開(kāi)
    if(access(argv[1],F_OK)){
        //創(chuàng)建有名管道
        if(mkfifo(argv[1],0666) < 0){   //管道權(quán)限= 0666 & ~umusk
            perror("mkfifo");
            exit(1);
        }
    }

    //打開(kāi)管道
    if((fd = open(argv[1],O_RDWR)) < 0){
        perror("open");
        exit(1);
    }

    //鍵盤(pán)輸入10個(gè)整數(shù)
    printf("請(qǐng)輸入10個(gè)整數(shù):");
    for(i = 0; i < 10; i++){
        scanf("%d",&a[i]);
    }

    //向管道中寫(xiě)10個(gè)整數(shù)
    write(fd,a,sizeof(a));

    close(fd);

    return 0;
}

二、信號(hào)通信

1 .概念

信號(hào)是在軟件層次上對(duì)中斷機(jī)制的一種模擬,是一種異步通信方式

信號(hào)可以直接進(jìn)行用戶空間進(jìn)程和內(nèi)核進(jìn)程之間的交互,內(nèi)核進(jìn)程也可以利用它來(lái)通知用戶空間進(jìn)程發(fā)生了哪些系統(tǒng)事件。

如果該進(jìn)程當(dāng)前并未處于執(zhí)行態(tài),則該信號(hào)就由內(nèi)核保存起來(lái),直到該進(jìn)程恢復(fù)執(zhí)行再傳遞給它;如果一個(gè)信號(hào)被進(jìn)程設(shè)置為阻塞,則該信號(hào)的傳遞被延遲,直到其阻塞被取消時(shí)才被傳遞給進(jìn)程

2 .用戶進(jìn)程對(duì)信號(hào)的響應(yīng)方式

(1)忽略信號(hào):
?? ?對(duì)信號(hào)不做任何處理,但是有兩個(gè)信號(hào)不能忽略:即SIGKILL及SIGSTOP。
(2)捕捉信號(hào):
?? ?定義信號(hào)處理函數(shù),當(dāng)信號(hào)發(fā)生時(shí),執(zhí)行相應(yīng)的處理函數(shù)。
(3)執(zhí)行缺省操作:
?? ?Linux對(duì)每種信號(hào)都規(guī)定了默認(rèn)操作

//查看linux系統(tǒng)中的信號(hào)---kill
peter@ubuntu:~/2308/proc/day03_code$ kill -l
?1) SIGHUP ? ? ? 2) SIGINT ? ? ? 3) SIGQUIT ? ? ?4) SIGILL ? ? ? 5) SIGTRAP
?6) SIGABRT ? ? ?7) SIGBUS ? ? ? 8) SIGFPE ? ? ? 9) SIGKILL ? ? 10) SIGUSR1
11) SIGSEGV ? ? 12) SIGUSR2 ? ? 13) SIGPIPE ? ? 14) SIGALRM ? ? 15) SIGTERM
16) SIGSTKFLT ? 17) SIGCHLD ? ? 18) SIGCONT ? ? 19) SIGSTOP ? ? 20) SIGTSTP
21) SIGTTIN ? ? 22) SIGTTOU ? ? 23) SIGURG ? ? ?24) SIGXCPU ? ? 25) SIGXFSZ
26) SIGVTALRM ? 27) SIGPROF ? ? 28) SIGWINCH ? ?29) SIGIO ? ? ? 30) SIGPWR
31) SIGSYS ? ? ?34) SIGRTMIN ? ?35) SIGRTMIN+1 ?36) SIGRTMIN+2 ?37) SIGRTMIN+3
38) SIGRTMIN+4 ?39) SIGRTMIN+5 ?40) SIGRTMIN+6 ?41) SIGRTMIN+7 ?42) SIGRTMIN+8
43) SIGRTMIN+9 ?44) SIGRTMIN+10 45) SIGRTMIN+11 46) SIGRTMIN+12 47) SIGRTMIN+13
48) SIGRTMIN+14 49) SIGRTMIN+15 50) SIGRTMAX-14 51) SIGRTMAX-13 52) SIGRTMAX-12
53) SIGRTMAX-11 54) SIGRTMAX-10 55) SIGRTMAX-9 ?56) SIGRTMAX-8 ?57) SIGRTMAX-7
58) SIGRTMAX-6 ?59) SIGRTMAX-5 ?60) SIGRTMAX-4 ?61) SIGRTMAX-3 ?62) SIGRTMAX-2
63) SIGRTMAX-1 ?64) SIGRTMAX

3. 用戶進(jìn)程對(duì)常用信號(hào)的缺省操作

信號(hào)名 含義 默認(rèn)操作
SIGHUP

該信號(hào)在用戶終端連接(正?;蚍钦?結(jié)束時(shí)發(fā)出,通常是在終端的控? ?

制進(jìn)程結(jié)束時(shí),通知同一會(huì)話內(nèi)的各個(gè)作業(yè)與控制終端不再關(guān)聯(lián)。?? ??? ??? ?

終止
SIGINT 該信號(hào)在用戶鍵入INTR字符(通常是Ctrl-C)時(shí)發(fā)出,終端驅(qū)動(dòng)程序發(fā)送? ? ? ? ? ? ? ? ??
此信號(hào)并送到前臺(tái)進(jìn)程中的每一個(gè)進(jìn)程。?? ??? ??? ??? ?
終止
SIGQUIT 該信號(hào)和SIGINT類似,但由QUIT字符(通常是Ctrl-\)來(lái)控制。 終止
SIGILL 該信號(hào)在一個(gè)進(jìn)程企圖執(zhí)行一條非法指令時(shí)(可執(zhí)行文件本身出現(xiàn)錯(cuò)誤,? ? ? ? ? ? ? ? ? ? ?
或者試圖執(zhí)行數(shù)據(jù)段、堆棧溢出時(shí))發(fā)出。?? ?
終止
SIGFPE

該信號(hào)在發(fā)生致命的算術(shù)運(yùn)算錯(cuò)誤時(shí)發(fā)出。這里不僅包括浮點(diǎn)運(yùn)算錯(cuò)誤,? ? ? ? ? ? ? ? ? ?

?還包括溢出及除數(shù)為0等其它所有的算術(shù)的錯(cuò)誤。?? ?

終止
SIGKILL 該信號(hào)用來(lái)立即結(jié)束程序的運(yùn)行,并且不能被阻塞、處理和忽略。 終止
SIGALRM 該信號(hào)當(dāng)一個(gè)定時(shí)器到時(shí)的時(shí)候發(fā)出。 終止
SIGSTOP 該信號(hào)用于暫停一個(gè)進(jìn)程,且不能被阻塞、處理或忽略。 暫停進(jìn)程
SIGTSTP 該信號(hào)用于暫停交互進(jìn)程,用戶可鍵入SUSP字符(通常是Ctrl-Z)發(fā)出這個(gè)信號(hào)。 暫停進(jìn)程
SIGCHLD 子進(jìn)程改變狀態(tài)時(shí),父進(jìn)程會(huì)收到這個(gè)信號(hào) 忽略
SIGABORT 該信號(hào)用于結(jié)束進(jìn)程 終止

4. 信號(hào)處理流程

?C/C++進(jìn)程超詳細(xì)詳解【下部分】(系統(tǒng)性學(xué)習(xí)day8),Ubantu和C語(yǔ)言學(xué)習(xí),學(xué)習(xí),c語(yǔ)言,c#,開(kāi)發(fā)語(yǔ)言

5. 信號(hào)相關(guān)函數(shù)(系統(tǒng)調(diào)用)

?5.1 kill - 給指定進(jìn)程發(fā)送信號(hào)

#include <sys/types.h>
? ? #include <signal.h>
? ? int kill(pid_t pid, int sig);
? ? //參數(shù)1 ?-----信號(hào)發(fā)送的目標(biāo)進(jìn)程的ID
? ? ?? ??? ??? ? 參數(shù)1取值分四種
? ? ?? ??? ??? ? pid > 0 ,給進(jìn)程號(hào)為pid的進(jìn)程發(fā)送信號(hào)
? ? ?? ??? ??? ? pid = 0 , 給當(dāng)前進(jìn)程組中每一個(gè)進(jìn)程發(fā)送信號(hào)
? ? ?? ??? ??? ? pid = -1, 發(fā)送給進(jìn)程表中所有的進(jìn)程
? ? ?? ??? ??? ? pid < -1, 給指定進(jìn)程組中的每一個(gè)進(jìn)程發(fā)送信號(hào),該進(jìn)程組的ID為-pid
? ? //參數(shù)2 ?-----要發(fā)送的信號(hào)
? ? //返回值----成功:0,失?。?1

實(shí)例代碼如下:?
int main(int argc,char **argv)
{
#if 1
    pid_t pid;

    if(argc != 2){
        fprintf(stderr,"Usage: %s <pid>\n",argv[0]);
        exit(1);
    }

    pid = atoi(argv[1]);   //atoi將字符串轉(zhuǎn)為整數(shù)
    if(kill(pid,SIGKILL) < 0){
        perror("kill");
        exit(1);
    }
#else
    pid_t pid1,pid2;
    int i;

    if((pid1 = fork()) < 0){
        perror("fork");
        exit(1);
    }else if(!pid1){   //子進(jìn)程1
        for(i = 0; ; i++){
            printf("pid = %d\n",getpid());
            sleep(1);
        }
    }else{
        if((pid2 = fork()) < 0){
            perror("fork");
            exit(1);
        }else if(!pid2){  //子進(jìn)程2
            for(i = 0; ; i++){
                printf("pid = %d\n",getpid());
                sleep(1);
            }
        }else{  //父進(jìn)程
            for(i = 0; ; i++){
                printf("pid = %d\n",getpid());
                sleep(1);
                if(i == 5)
                    //kill(0,SIGKILL); //0--給進(jìn)程組中每一個(gè)進(jìn)程發(fā)送信號(hào)
                    kill(pid2,SIGKILL);  //給pid2發(fā)送信號(hào)
            }
        }
    }

#endif
    return 0;
}

5.2 raise() --給當(dāng)前進(jìn)程發(fā)送信號(hào) ?

#include <signal.h>
int raise(int sig);
//參數(shù) ----信號(hào)
//返回值----成功:0,失?。?1

實(shí)例代碼如下:?
int main(void)
{
    int i;
    for(i = 0; ; i++){
        printf("pid = %d\n",getpid());
        sleep(1);
        if(i == 7)
            raise(SIGKILL);
    }
    return 0;
}

5.3 alarm() 在進(jìn)程中設(shè)置定時(shí)器(鬧鐘) ?

#include <unistd.h>
unsigned int alarm(unsigned int seconds);
//參數(shù) ---- 要定時(shí)的秒數(shù)
//返回值 ----如果第一次調(diào)用該函數(shù),返回值為0,
?? ??? ??? ?如果調(diào)用之前已經(jīng)設(shè)置了定時(shí)器,則返回上次定時(shí)剩余的秒數(shù)

實(shí)例代碼如下:?
int main(void)
{
    int i,ret;

    ret = alarm(20);  // 從該語(yǔ)句開(kāi)始計(jì)時(shí),7秒之后發(fā)送SIGALRM信號(hào)給當(dāng)前進(jìn)程
    printf("ret = %d\n",ret);

    for(i = 0; ; i++){
        printf("pid = %d,i = %d\n",getpid(),i);
        sleep(1);
        if(i == 7){
            ret = alarm(5);
            printf("ret = %d\n",ret);
        }
    }
    return 0;
}

5.4 pause() 使進(jìn)程掛起 ?

int pause(void);
//使進(jìn)程掛起 ,直到進(jìn)程收到任意一個(gè)信號(hào)則返回。

?實(shí)例代碼如下:
//信號(hào)處理函數(shù)
void fun(int signo)
{
    int i;
    for(i = 0; i < 3; i++){
        printf(GREEN "正在吃飯\n"NONE);
        sleep(1);
    }
}

int main(void)
{
    int i,j;

    //注冊(cè)信號(hào)SIGALRM
    signal(SIGINT,fun);


    for(i = 0; ; i++){
        pause();  //使進(jìn)程掛起,直到收到信號(hào)為止
        for(j = 0; j < 5; j++){
            printf("正在睡覺(jué)\n");
            sleep(1);
        }
    }
    return 0;
}

5.5 signal 注冊(cè)信號(hào) ?

#include <signal.h>
typedef void (*sighandler_t)(int); ?//定義函數(shù)指針類型名稱
sighandler_t signal(int signum, sighandler_t handler);
//參數(shù)1 ---- 要注冊(cè)的信號(hào)
//參數(shù)2 ---- 信號(hào)的響應(yīng)方式:
?? ??? ??? ??? ?SIG_IGN ? ----- 忽略信號(hào)
?? ??? ??? ??? ?SIG_DFL ? ----- 對(duì)信號(hào)進(jìn)行缺省操作
?? ??? ?信號(hào)處理函數(shù)的指針 ? ?----- 捕捉信號(hào),當(dāng)收到信號(hào),則會(huì)執(zhí)行信號(hào)處理函數(shù)
?? ??? ?void xxx_fun(int)
?? ??? ?{
?? ??? ?
?? ??? ?}
//返回值 ----成功:信號(hào)處理函數(shù)指針,失敗:SIG_ERR

實(shí)例代碼如下:?
//信號(hào)處理函數(shù)
void eat(int signo)
{
    int i;
    for(i = 0; i < 3; i++){
        printf(GREEN "正在吃飯\n"NONE);
        sleep(1);
    }
}

int main(void)
{
    int i;

    //注冊(cè)信號(hào)SIGALRM
    signal(SIGALRM,eat);


    for(i = 0; ; i++){
        if(i % 8 == 0){
            alarm(8);  // 從該語(yǔ)句開(kāi)始計(jì)時(shí),7秒之后發(fā)送SIGALRM信號(hào)給當(dāng)前進(jìn)程
            printf("開(kāi)始睡覺(jué),設(shè)置鬧鐘\n");
        }
        printf("正在睡覺(jué)......\n");
        sleep(1);
    }
    return 0;
}


總結(jié)

? ? ? ? 本篇文章針對(duì)進(jìn)程進(jìn)行最后的超詳細(xì)講解和補(bǔ)充,希望能夠幫到大家!

? ? ? ? 以后還會(huì)給大家展現(xiàn)更多關(guān)于嵌入式和C語(yǔ)言的其他重要的基礎(chǔ)知識(shí),感謝大家支持懶大王!

? ? ? ?希望這篇博客能給各位朋友們帶來(lái)幫助,最后懶大王請(qǐng)來(lái)過(guò)的朋友們留下你們寶貴的三連以及關(guān)注,感謝你們!文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-715576.html

到了這里,關(guān)于C/C++進(jìn)程超詳細(xì)詳解【下部分】(系統(tǒng)性學(xué)習(xí)day8)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 初識(shí)C語(yǔ)言——詳細(xì)入門(mén)(系統(tǒng)性學(xué)習(xí)day4)

    初識(shí)C語(yǔ)言——詳細(xì)入門(mén)(系統(tǒng)性學(xué)習(xí)day4)

    目錄 前言 一、C語(yǔ)言簡(jiǎn)單介紹、特點(diǎn)、基本構(gòu)成 簡(jiǎn)單介紹: 特點(diǎn): 基本構(gòu)成: 二、認(rèn)識(shí)C語(yǔ)言程序 標(biāo)準(zhǔn)格式: 簡(jiǎn)單C程序: 三、基本構(gòu)成分類詳細(xì)介紹? ? (1) (2)數(shù)據(jù)類型 計(jì)算機(jī)中常用存儲(chǔ)單位 數(shù)據(jù)類型的取值范圍 打印輸入類型 (3)常量和變量 常量的分類:

    2024年02月08日
    瀏覽(28)
  • C/C++ 線程超詳細(xì)講解(系統(tǒng)性學(xué)習(xí)day10)

    C/C++ 線程超詳細(xì)講解(系統(tǒng)性學(xué)習(xí)day10)

    目錄 前言 一、線程基礎(chǔ) 1.概念 ?2.一個(gè)進(jìn)程中多個(gè)線程特征 2.1 線程共有資源 2.2 線程私有資源 ? 3.線程相關(guān)的api函數(shù) ?3.1 創(chuàng)建線程 創(chuàng)建線程實(shí)例代碼如下: ?需要特別注意的是: -lpthread和-pthread的區(qū)別 3.2 給線程函數(shù)傳參 ? 傳參實(shí)例代碼如下: 3.3 給線程收尸 收尸實(shí)例代碼

    2024年02月08日
    瀏覽(20)
  • C/C++運(yùn)算符超詳細(xì)講解(系統(tǒng)性學(xué)習(xí)day5)

    C/C++運(yùn)算符超詳細(xì)講解(系統(tǒng)性學(xué)習(xí)day5)

    目錄 前言 一、運(yùn)算符的概念與分類 二、算術(shù)運(yùn)算符 三、關(guān)系運(yùn)算符 ?四、邏輯運(yùn)算符 五、賦值運(yùn)算符 六、運(yùn)算符的優(yōu)先級(jí)? 總結(jié) ? 本篇文章是對(duì)運(yùn)算符的具體講解。 概念: 運(yùn)算符就是一種告訴編譯器執(zhí)行特定的數(shù)學(xué)或邏輯操作的符號(hào),用來(lái)表示針對(duì)數(shù)據(jù)的特定操作,也

    2024年02月07日
    瀏覽(25)
  • C/C++ stm32基礎(chǔ)知識(shí)超詳細(xì)講解(系統(tǒng)性學(xué)習(xí)day14)

    C/C++ stm32基礎(chǔ)知識(shí)超詳細(xì)講解(系統(tǒng)性學(xué)習(xí)day14)

    目錄 前言 一、ARM和STM32是什么? 二、STM32的開(kāi)發(fā)方式 三、GPIO----寄存器開(kāi)發(fā)方式 1.八種輸入輸出模式分析 2.寄存器? 四、stm32芯片圖片 五、怎么學(xué)好stm32? 總結(jié) stm32的廣泛含義及背景: STM32是一款由意法半導(dǎo)體(ST)公司開(kāi)發(fā)的32位微控制器,其全稱是意法半導(dǎo)體32位系列微控

    2024年02月04日
    瀏覽(34)
  • C/C++網(wǎng)絡(luò)編程基礎(chǔ)知識(shí)超詳細(xì)講解第二部分(系統(tǒng)性學(xué)習(xí)day12)

    C/C++網(wǎng)絡(luò)編程基礎(chǔ)知識(shí)超詳細(xì)講解第二部分(系統(tǒng)性學(xué)習(xí)day12)

    ? ? ? ? ? ? 懶大王感謝大家的關(guān)注和三連支持~ ? ? ? 目錄 前言 一、UDP編程 UDP特點(diǎn): ?UDP框架: UDP函數(shù)學(xué)習(xí)? ?發(fā)送端代碼案例如下: 二、多路復(fù)用? 前提講述 select? poll 三、圖解如下? 總結(jié)? ? ? ?? 作者簡(jiǎn)介: ?懶大王敲代碼,正在學(xué)習(xí)嵌入式方向有關(guān)課程stm32,網(wǎng)絡(luò)

    2024年02月07日
    瀏覽(21)
  • C/C++網(wǎng)絡(luò)編程基礎(chǔ)知識(shí)超詳細(xì)講解第一部分(系統(tǒng)性學(xué)習(xí)day11)

    目錄 前言 一、網(wǎng)絡(luò)的含義與構(gòu)成 含義: 構(gòu)成:? 二、網(wǎng)絡(luò)的體系結(jié)構(gòu) 1OSI七層模型 2TCP/IP協(xié)議體系結(jié)構(gòu)? 3數(shù)據(jù)經(jīng)過(guò)體系結(jié)構(gòu),怎么封裝?? 4端口號(hào) 5大小端序 6TCP/UDP傳輸層的協(xié)議? 三、系統(tǒng)函數(shù)API學(xué)習(xí)框架(TCP)? ?? 服務(wù)器(優(yōu)先): ?客戶端: 四、服務(wù)器和客戶端代碼實(shí)

    2024年02月08日
    瀏覽(26)
  • HarmonyOS4.0系統(tǒng)性深入開(kāi)發(fā)19進(jìn)程模型概述

    HarmonyOS4.0系統(tǒng)性深入開(kāi)發(fā)19進(jìn)程模型概述

    HarmonyOS的進(jìn)程模型: 應(yīng)用中(同一包名)的所有UIAbility運(yùn)行在同一個(gè)獨(dú)立進(jìn)程中。 WebView擁有獨(dú)立的渲染進(jìn)程。 基于HarmonyOS的進(jìn)程模型,系統(tǒng)提供了公共事件機(jī)制用于一對(duì)多的通信場(chǎng)景,公共事件發(fā)布者可能存在多個(gè)訂閱者同時(shí)接收事件。 HarmonyOS通過(guò)CES(Common Event Service,公

    2024年01月19日
    瀏覽(29)
  • 如何系統(tǒng)性的學(xué)習(xí)Python語(yǔ)言

    如何系統(tǒng)性的學(xué)習(xí)Python語(yǔ)言

    零基礎(chǔ)同學(xué)的福音來(lái)了,如果你對(duì)Python語(yǔ)言的學(xué)習(xí)感興趣,接下來(lái)可以由淺入深的了解下Python語(yǔ)言,哪怕你是零基礎(chǔ)的小白也完全可以學(xué)會(huì)的,最后也會(huì)給大家放出學(xué)習(xí)和實(shí)例相結(jié)合的教程及方法,給到各位同學(xué)系統(tǒng)性的教學(xué),最重要的是免費(fèi),可真謂是學(xué)生黨們的福音呀。

    2024年02月10日
    瀏覽(24)
  • 【基礎(chǔ)類】—面向?qū)ο箢愊到y(tǒng)性學(xué)習(xí)

    構(gòu)造函數(shù)模擬一個(gè)類 ES6 Class聲明 通過(guò) new 實(shí)例化一個(gè)類 借助構(gòu)造函數(shù)實(shí)現(xiàn)繼承 缺點(diǎn): Parent1的原型上的屬性和方法,并沒(méi)有被child所繼承。 總結(jié):只實(shí)現(xiàn)了部分繼承,如果父類的屬性都在構(gòu)造函數(shù)里面,完全可以實(shí)現(xiàn)繼承,如果父類的原型對(duì)象上還有方法或?qū)傩裕敲醋宇?/p>

    2024年02月14日
    瀏覽(21)
  • 【基礎(chǔ)類】—前后端通信類系統(tǒng)性學(xué)習(xí)

    同源策略限制從一個(gè)源加載的文檔或腳本如何與來(lái)自另一個(gè)源的資源進(jìn)行交互。這是一個(gè)用于隔離潛在惡意文件的關(guān)鍵的安全機(jī)制。 源:協(xié)議、域名和端口, 默認(rèn)端口是80 三者有一個(gè)不同,即源不同,就是跨域 限制:不是一個(gè)源的文檔,你沒(méi)有權(quán)利去操作另一個(gè)源的文檔,

    2024年02月13日
    瀏覽(23)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包