- 博客(23)
- 收藏
- 关注
原创 sum (L)
对list求和code(defun resursive_sum (L) (if (null L) 0 (+ (first L) (resursive (rest L)))))
2012-06-01 13:20:05 383
原创 lisp小程序,useless
用于求T(n)期中T(n)= 1 (n = 1 时),T(n) = n + T(n-1)lisp code(defun trianguler (N) (if (= N 1) 1 (+ N (trianguler (- N 1)))))
2012-06-01 00:38:22 698
原创 library sort
以前对这个算法不以为然,现在却很是喜欢,不是因为她有多么高效,而是这种方法在一个程序设计时很有用,程序员无法预知以后会发生什么,所以预留是很重要的,比如错误码的预留,以及在通信协议实现中太有必要了。。。。
2012-05-31 22:32:04 307
原创 sprintf,snprintf,vsprintf,vsnprintf
这几个函数都会在字符串末尾加上null字节,但返回值是不包扩这个null字节的在X/Open出的XSH 第四次发行第二版中只有第一个函数,后面的三个系统调用是没有的,不过在IEEE Std 1003.1-2008中都包含,The Open Group Base Specifications Issue 7中有这些函数,故这几个函数不会存在移植性问题,期中issue7中还有vdprintf,原型
2012-05-28 00:35:37 1267
原创 pam
这几天考试,talk'程序的代码过几天再完善,前几天一直在分析su和sudo的源码,因为想做过个直接登录而不用通过su程序直接登录的工具集成到talk中,分析了那么久,都不知道它们到底怎么有权限直接访问shadow文件的,也不知道该怎么登录,终于发现他们使用pam认证的,在pam.d下有他们的文件,记在这里,考完了来写下工具的代码。。。
2012-05-26 00:10:44 241
原创 从talk服务器上获取要交流对象的地址
void do_talk(const char *buf,int sockfd){ FILE *fp; const char *t; struct login_user me; fp = fopen("login.dat","r"); if (fp == NULL) {
2012-05-22 20:38:20 290
原创 logout函数,有待改进,先完成基本的功能
void do_logout(const char *buf,int sockfd){ FILE *fp; const char *t; struct login_user me; struct login_user logoutuser; fp = fopen("login.dat","r+");
2012-05-21 20:22:32 1187
原创 。。。。。
代码质量还是太差,还得多练习,想用plan9,但没有多余的主机,过几天就要考试了,这个学期还没翻过书,又要准备考研,寝室的一群家伙打dota都打到一点多,休息时间都没得保证,悲剧的人生莫过如此。。。前些天unix环境高级编程和unix网络编程在自习室被盗了,算法导论也差点丢了,还好那天晚上带回来看了一会。。。。。不想了,这几天复习汽车理论去。。。。。
2012-05-21 00:17:40 274
原创 talk的登录函数
int user_login(struct user me,FILE *fp,int sockfd) { rewind(fp); struct user t; while (fread(&t,sizeof(struct user),1,fp) == 1) { if (strcmp(t.name,me.n
2012-05-21 00:02:20 327 1
原创 在文件流中查找用户存在及加入用户
struct user{ char name[32]; char passwd[32];};int find_add_user(struct user me,FILE *fp) { rewind(fp); struct user t; while (fread(&t,sizeof(struct
2012-05-19 23:07:12 991
原创 whoami的更简单实现
void whoami(int sockfd) { char *ptr; char buf[MAXLINE]; if ((ptr = getlogin()) == NULL) { err_ret("error"); return; }
2012-05-19 21:03:03 390
原创 firsttok的修订版本
char *firsttok(const char *s,const char *delimiter){ const char *p; const char *a; for(p = s;*p != '\0';) { for (a = delimiter;*a != '\0';++a) {
2012-05-19 20:57:18 231 1
原创 whoami程序的一种实现,用于talk程序中查看远程用户的
void Whoami(int sockfd) { struct passwd *pwd; char buffer[MAXLINE]; uid_t uid; uid = getuid(); pwd = getpwuid(uid); if (pwd == NULL) {
2012-05-18 23:31:00 252
原创 没什么价值的小程序的头文件(talk程序,用于聊天,远程执行命令。。。)
#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include
2012-05-18 21:54:24 383
原创 重启及关机
void Reboot(int sockfd) { int i; sync(); if (( i = reboot(LINUX_REBOOT_CMD_RESTART)) !=0) { char *buf= "failed to reboot the computer\n"; w
2012-05-18 16:28:48 262
原创 获取系统信息,如开机时间,ram容量,等信息
struct sysinfo getinfo(int sockfd) { int i; struct sysinfo info; char buffer[BUFSIZ]; if ((i = sysinfo(&info)) == -1) err_ret("get sysinfo error")
2012-05-18 16:20:03 300
原创 获取系统名字及相关信息的函数
struct utsname getname(int sockfd) { struct utsname name; int i; char buffer[4096]; bzero(&name,sizeof(name)); i = uname(&name); if ( i == -1) {
2012-05-18 16:17:06 225
原创 在指定的文件描述符中查找token,
int grepdata(char *buf,int fd) { off_t n; char t[MAXLINE]; char destbuf[MAXLINE]; char srcbuf[MAXLINE];#ifdef DEBUG// fprintf(stderr,"t is %s\n",t);#endi
2012-05-17 20:15:55 364
原创 将字符串右边的空白去掉
void trapright(char *buf,char *trapper,char *destbuf){ char *p; const char *a; for (p = buf+strlen(buf)-1;p>=buf; ) { for ( a = trapper;*a!='\0';++a)
2012-05-17 20:10:01 349
原创 将字符串左边的空白去掉
void trapleft(char **buf,char *trapper){ char *p; const char *a; for (p=*buf;*p!='\0'; ) { for (a = trapper;*a != '\0';++a) { if
2012-05-16 20:56:48 257
原创 得到第一个词(token)
char *firsttok(const char *s,const char *delimiter,char first[]){ const char *p; const char *a; for(p = s;*p!='\0';++p) { for (a = delimiter;*a != '\0
2012-05-16 20:54:46 183
原创 将源字符串中特定字串替代为指定字串
int strreplace(char *src,char *tbreplaced,char *replace,char *replaced) { char *p; p = strstr(src,tbreplaced); if (p == NULL) { strcpy(replaced,src);
2012-05-16 00:32:13 209
原创 2012-5-16
暗恋的她,对我总是不冷不热的多的我也不想了,谁没有追求更好的人的想法呢,祝福她吧我不是计算机专业的,但我喜欢计算机,它已经花了我很长时间了总有一天,我会成巨人
2012-05-16 00:09:11 157
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人