堅持 成長 每日一篇
返回-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...