无聊的小代码
zhouqiang1990000815
这个作者很懒,什么都没留下…
展开
-
将源字符串中特定字串替代为指定字串
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 · 194 阅读 · 0 评论 -
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 · 1159 阅读 · 0 评论 -
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 · 298 阅读 · 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 · 970 阅读 · 0 评论 -
whoami的更简单实现
void whoami(int sockfd) { char *ptr; char buf[MAXLINE]; if ((ptr = getlogin()) == NULL) { err_ret("error"); return; }原创 2012-05-19 21:03:03 · 369 阅读 · 0 评论 -
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 · 206 阅读 · 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 · 232 阅读 · 0 评论 -
没什么价值的小程序的头文件(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 · 363 阅读 · 0 评论 -
重启及关机
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 · 233 阅读 · 0 评论 -
获取系统信息,如开机时间,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 · 274 阅读 · 0 评论 -
获取系统名字及相关信息的函数
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 · 209 阅读 · 0 评论 -
将字符串右边的空白去掉
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 · 321 阅读 · 0 评论 -
在指定的文件描述符中查找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 · 342 阅读 · 0 评论 -
将字符串左边的空白去掉
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 · 242 阅读 · 0 评论 -
得到第一个词(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 · 165 阅读 · 0 评论 -
从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 · 265 阅读 · 0 评论