C語言函式的封裝 未完待續

2021-07-05 03:14:55 字數 2178 閱讀 7420

堅持 成長 每日一篇

返回-1表示讀取失敗,注意返回的資料是帶\n。

}else

if (ret == 0)

else

}return

offset;

}讀取固定位元組,都到結尾返回已讀子節數,-1表示讀取失敗

else

if (ret == 0)

else

}return

offset;

}成功返回連線成功後的套接字,失敗返回-1。

int opensocket(const char *ip, uint16_t port)

printf("socketfd = %d\n", socketfd);

ret = connect(socketfd, (struct sockaddr *)&serveraddr, sizeof(serveraddr));

if (ret < 0)

return socketfd;

}

成功返回監聽的套接字,失敗返回-1;

int openlistensocket(uint16_t port)

ret = bind(listensocketfd, (struct sockaddr *)&serveraddr, sizeof(serveraddr));

if (ret < 0)

ret = listen(listensocketfd, 5);

if (ret < 0)

return listensocketfd;

}

引數sec表示超過多少時間就認為讀取超時,該函式一般適用於網路請求

ssize_t readn_timeout(int fildes, void *buf, size_t nbyte, long sec)

timeout.tv_sec = sec - sumtime;

timeout.tv_usec = 0;

//計算等待可讀資料,select的返回值1表示有資料可讀

time1 = time(null);

ret = select(fildes+1, &readfdset, null, null, &timeout);

time2 = time(null);

sumtime += (time2 - time1);

if (ret == 1)

else

if (ret == 0)

else

}else

}return offset;

}

同上

timeout.tv_sec = sec - sumtime;

timeout.tv_usec = 0;

time1 = time(null);

ret = select(fildes+1, null, &writefdset, null, &timeout);

time2 = time(null);

sumtime += (time2 - time1);

if (ret == 1)

offset += ret;

}else

}return

offset;

}

/*oc的nsfilemanager下有乙個物件導向的方法-(nsarray *)contentsofdirectoryatpath:error:相同的功能

*封裝乙個oc語法的獲取目錄下子目錄

*path為資料夾路徑時候返回陣列,否則返回nil。出錯返回陣列為nil 輸出error 否則error為空

*目錄下沒有可見檔案返回陣列包含0個物件

*/nsarray* contentswithpath(nsstring *path,nserror **error)

*error = [[nserror alloc] initwithdomain:@"can open dir" code:505 userinfo:nil];

return

nil;

}nsmutablearray *array = [[nsmutablearray alloc] init];

while ((dirp = readdir(dp)) != null) else

}return array;

}

封裝控制項的原理 未完待續

前言 乙個控制項從外在特徵來說,主要是封裝這幾點 互動方式 顯示樣式 資料使用 對外在特徵的封裝,能讓我們在多種環境下達到 pm 對產品的要求,並且提到 復用率,使維護工作保持在乙個相對較小的範圍內 而乙個好的控制項除了有對外一致的體驗之外,還有其內在特徵 靈活性 低耦合易拓展 易維護通常特徵之間需...

模板(C )(未完待續)

為了提高程式的可重用性,c 中引入了模板這一概念。舉例來說,為了實現乙個交換函式,因為資料型別的關係,可能你需要實現好幾種只是引數型別有差異的相同的函式,這大大降低了我們的工作效率 但通過使用模板我們可以實現乙個萬能的交換函式。函式模板形式如下 template 返回值型別 模板名 形參表 其中的 ...

STL好用函式集錦(未完待續)

next permutation a 1,a n 1 用於求解a陣列的下乙個較大的排列。prev permutation則與之相反,求解下乙個較小的排列。函式引數均為陣列起始座標,和終止座標,如果存在下乙個排列,則返回1,否則返回0,同時把該陣列變為下乙個排列。應用前景廣泛。例項 include i...