
作業(yè)社區(qū)
探索學(xué)習(xí)新天地,共享知識(shí)資源!
阿大月 的學(xué)生作業(yè):
socket() 函數(shù)是網(wǎng)絡(luò)編程中的核心函數(shù)之一,用于創(chuàng)建一個(gè)新的套接字(socket),它允許程序通過(guò)網(wǎng)絡(luò)進(jìn)行通信。 #include #include int socket(int domain, int type, int protocol); 參數(shù)詳解 domain: 指定通信域或協(xié)議族(Protocol Family)。常見(jiàn)的值包括: AF_INET: IPv4 網(wǎng)絡(luò)協(xié)議。 AF_INET6: IPv6 網(wǎng)絡(luò)協(xié)議。 AF_UNIX: Unix 域套接字,用于同一臺(tái)主機(jī)上的進(jìn)程間通信。 type: 指定服務(wù)類型或套接字類型。常用的有: SOCK_STREAM: 提供有序、可靠、雙向的基于連接的字節(jié)流。(TCP) SOCK_DGRAM: 支持?jǐn)?shù)據(jù)報(bào)文(datagram)無(wú)連接通信。(UDP) SOCK_RAW: 提供原始網(wǎng)絡(luò)協(xié)議訪問(wèn)。 protocol: 指定使用的特定協(xié)議。通常設(shè)置為0,表示使用給定的 domain 和 type 的默認(rèn)協(xié)議。對(duì)于 AF_INET 和 SOCK_STREAM,默認(rèn)協(xié)議為 TCP;對(duì)于 AF_INET 和 SOCK_DGRAM,默認(rèn)協(xié)議為 UDP。 返回值 成功時(shí),socket() 返回一個(gè)文件描述符,該描述符指向新創(chuàng)建的套接字。如果發(fā)生錯(cuò)誤,則返回 -1 并設(shè)置全局變量 errno 來(lái)指示錯(cuò)誤類型。
蠟筆小方哎 的學(xué)生作業(yè):
發(fā)現(xiàn)一個(gè)問(wèn)題:不支持tab鍵 #include #include #include #include #include #include #define MY_LEN 50 // 假設(shè)輸入的命令的字符串長(zhǎng)度不超過(guò)50個(gè)字符 #define NUM_CMD_STR 10 // 假設(shè)輸入的命令的字符串個(gè)數(shù)不超過(guò)10個(gè) int main() { char cmd[MY_LEN]; char* my_argv[NUM_CMD_STR]; char* d = " "; char* token; int idx; pid_t pid; while(1) { memset(cmd, 0, MY_LEN); printf("minishell> "); fgets(cmd, MY_LEN, stdin); cmd[strlen(cmd)-1] = '\0'; if(strcmp(cmd, "exit") == 0) break; #ifdef DEBUG printf("[DEBUG] cmd = %s\n", cmd); #endif token = strtok(cmd, d); idx = 0; memset(my_argv, 0, NUM_CMD_STR*sizeof(char*)); while(token) { #ifdef DEBUG printf("[DEBUG] token = %s\n", token); #endif my_argv[idx++] = token; token = strtok(NULL, d); } #ifdef DEBUG printf("[DEBUG] my_argv = "); for(idx=0; idx
小銘同志 的學(xué)生作業(yè):
#include //定義find_max函數(shù),返回2個(gè)數(shù)的最大值 int find_max(int x, int y) { return (x > y) ? x : y; } //定義find_min 函數(shù),返回2個(gè)數(shù)的最小值 int find_min(int x ,int y) { return (x < y)? x : y; } int get_result(int x,int y,int (*pfun)(int,int)) { return pfun(x,y); } int main() { int a =10,b=20; printf(“max = %d\n”,get_result(a,b,find_max)); printf(“min = %d\n”,get_result(a,b,find_min)); return 0; }




