char函数

c语言文件基础知识

喜你入骨 提交于 2020-01-21 08:35:45
#include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <string.h> /* * EOF: 符号常量,其值为-1. * fgets() 最多读取int-1个字符,遇换行或EOF即返回. * fputs() 写文件时,忽略字符串截止符'\0'. * fread()和fwrite() 数据块读写,多用于结构体数组(顺序存储的结构体). * * 函数原型: * 读: * int fgetc(FILE *stream); * char *fgets(char *s, int size, FILE *stream); * size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream); * int fscanf(FILE *stream, const char *format, ...); * 写: * int fputc(int c, FILE *stream); * int fputs(const char *s, FILE *stream); * size_t fwrite(const void *ptr, size_t size, size_t nmemb, FILE *stream); * int fprintf(FILE

计算机与网络课程设计开发纪要

廉价感情. 提交于 2020-01-21 00:25:36
首先祝福课程设计负责老师祖坟冒火花,四天时间让人写一个软件出来也是有点东西的:) 1.IP地址 127.0.0.1 是本机地址。 2.端口 为了区分不同的网络程序,计算机会为每个网络程序分配一个独一无二的端口号(Port Number),例如,Web服务的端口号是 80,FTP 服务的端口号是 21,SMTP 服务的端口号是 25。 3.协议 协议有很多种,例如 TCP、UDP、IP 等,通信的双方必须使用同一协议才能通信。 4.数据传输方式 计算机之间有很多数据传输方式,各有优缺点,常用的有两种:SOCK_STREAM 和 SOCK_DGRAM。 1) SOCK_STREAM 表示面向连接的数据传输方式。数据可以准确无误地到达另一台计算机,如果损坏或丢失,可以重新发送,但效率相对较慢。常见的 http 协议就使用 SOCK_STREAM 传输数据,因为要确保数据的正确性,否则网页不能正常解析。 2) SOCK_DGRAM 表示无连接的数据传输方式。计算机只管传输数据,不作数据校验,如果数据在传输中损坏,或者没有到达另一台计算机,是没有办法补救的。也就是说,数据错了就错了,无法重传。因为 SOCK_DGRAM 所做的校验工作少,所以效率比 SOCK_STREAM 高。 本次做的是视频聊天可以使用SOCK_DGRAM tip: socket() 函数用来创建套接字

CCSpriteBatchNode CCSpriteFrameCache

£可爱£侵袭症+ 提交于 2020-01-20 15:28:04
3.27 精灵集合类(CCSpriteBatchNode) //以纹理来创建一个精灵集合对象 static CCSpriteBatchNode* createWithTexture(CCTexture2D *tex, unsigned int capacity); //以图片文件来创建一个精灵集合对象 static CCSpriteBatchNode* create(const char *fileImage, unsigned int capacity); 3.2.8 精灵缓冲帧 (CCSpriteFrameCache) CCSpriteFrame //精灵帧类的属性 CCPoint m_obOffset; //偏移量 CCSize m_obOriginalSize; //纹理原始尺寸 CCRect m_obRectInPixels; //纹理像素尺寸 bool m_bRotated; //是否旋转 CCRect m_obRect; //矩形区域 CCPoint m_obOffsetInPixels; //像素单位的偏移量 CCSize m_obOriginalSizeInPixels; //像素单位的原始尺寸 CCTexture2D *m_pobTexture; //纹理对象 std::string m_strTextureFilename; //纹理名称 /

手动查找elf导出表函数

主宰稳场 提交于 2020-01-20 13:35:18
char * find_module_by_name ( char * name ) { FILE * fp = fopen ( "/proc/self/maps" , "r" ) ; char line [ 1024 ] = { 0 } ; char * ptr = NULL ; if ( fp ) { while ( fgets ( line , 1024 , fp ) ) { if ( strstr ( line , name ) ) { sscanf ( line , "%p-%*p %*s %*s %*s %*s %*s" , & ptr ) ; break ; } } fclose ( fp ) ; } return ptr ; } void * my_dlsym ( char * path , char * name ) { char * base = find_module_by_name ( path ) ; Elf32_Ehdr * elf_head = ( Elf32_Ehdr * ) base ; Elf32_Phdr * phead_table = ( Elf32_Phdr * ) ( base + elf_head -> e_phoff ) ; struct LoadableSegment { size_t num = 0 ; size_t max

指针和数组计算大小(sizeof()和strlen()的对比)

醉酒当歌 提交于 2020-01-20 01:34:14
/**--------------------------------------------------------------- * @brief 指针和数组变量sizeof()和strlen()的比较 * *---------------------------------------------------------------*/ int point_array_init ( ) { int * PointOne = "123456" ; char * PointTwo = "123456" ; char * PointThree = "123456\0" ; int ArrayOne [ 6 ] = { 1 , 2 , 3 , 4 , 5 , 6 } ; char ArrayTwo [ 6 ] = { 1 , 2 , 3 , 4 , 5 , 6 } ; char ArrayThree [ 7 ] = { 1 , 2 , 3 , 4 , 5 , 6 , '\0' } ; printf ( "\n\t|-------------------------------------------------------------------------\n" ) ; printf ( "\t| int *Point: | " ) ; printf ( "sizeof(Point

关于指针的几个模糊概念

不打扰是莪最后的温柔 提交于 2020-01-19 20:06:38
以上论述仅是个人夜半时分维之遨游,若有不正,请大家批评指正。 总结起来其实就简单的以下5点: ① 指针数组:int (*p)[] ②数组指针:int*p[] ③指针函数: int* fun(char , char) ④函数指针:int(*fun)(char,char) ⑤typedef int (*fun)(char,char): fun为指向某种特定函数类型的指针类型 来源: CSDN 作者: gujiamin-0-1 链接: https://blog.csdn.net/baidu_34263241/article/details/104042709

2020-01-19

為{幸葍}努か 提交于 2020-01-19 19:52:47
C语言实现简单功能的12306火车售票系统【附源码】 程序设计要求用C语言写一个简单的火车售票系统,主要实现的功能为: 录入班次信息 浏览班次信息 按班次号查询 按终点站查询 按余票数量排序保存 售票 退票 更新班次信息 退出系统 所有的班次信息保存在number.dat文件中,排序过后的保存在sort.dat中(.dat是一种二进制文件)。 在编写的过程中我觉得在判断火车的状态比较值得深究。这里假设火车主要有四种状态: 1.未发车 2.已发车 3.停止检票 4.停止退票 在程序中,思路是将代表发车时间的字符串转化为整型,再和系统现在的时间进行大小比较,主要采用if判断各种情况。其中atime代表的是发车时间的整型数,btime代表的是系统时间的整型数,具体实现如下: if(atime<=btime) //已经发车 return 1; if(((atime-btime<=30)&&(atime-btime>5)&&(atime/100 btime/100))||(((atime%100+(60-btime%100))<=30)&&(atime%100+(60-btime%100))>5&&(atime/100-btime/100 1))) //距发车半小时以内,停止退票,%表示取余 return 2; if(((atime-btime<=5)&&(atime/100 btime

用户空间与内核空间数据交换的方式(2)------procfs

强颜欢笑 提交于 2020-01-19 13:43:05
procfs是比较老的一种用户态与内核态的数据交换方式,内核的很多数据都是通过这种方式出口给用户的,内核的很多参数也是通过这种方式来让用户方便设置的。除了sysctl出口到/proc下的参数,procfs提供的大部分内核参数是只读的。实际上,很多应用严重地依赖于procfs,因此它几乎是必不可少的组件。本节将讲解如何使用procfs。 Procfs提供了如下API: struct proc_dir_entry *create_proc_entry(const char *name, mode_t mode, struct proc_dir_entry *parent) 该函数用于创建一个正常的proc条目,参数name给出要建立的proc条目的名称,参数mode给出了建立的该proc条目的访问权限,参数 parent指定建立的proc条目所在的目录。如果要在/proc下建立proc条目,parent应当为NULL。否则它应当为proc_mkdir 返回的struct proc_dir_entry结构的指针。 extern void remove_proc_entry(const char *name, struct proc_dir_entry *parent) 该函数用于删除上面函数创建的proc条目,参数name给出要删除的proc条目的名称

s_create(),device_create自动创建设备文件结点

▼魔方 西西 提交于 2020-01-19 13:23:50
clas s_create(),device_create自动创建设备文件结点 从linux 内核2.6的某个版本之后,devfs不复存在,udev成为devfs的替代。相比devfs,udev有很多优势,在此就不罗嗦了,提醒一 点, udev是应用层的东东,不要试图在内核的配置选项里找到它 ;加入对udev的支持很简单,以作者所写的一个字符设备驱动为例, 在驱动初始化的代码里调用class_create为该设备创建一个class,再为每个设备调用 class_device_create创建对应的设备 。 (不太明白什么是devfs,udev,对linux中的文件系统没有什么概念呢。) 大致用法如下: struct class *myclass = class_create(THIS_MODULE, “my_device_driver”); class_device_create(myclass, NULL, MKDEV(major_num, 0), NULL, “my_device”); 这样的module被加载时, udev daemon就会自动在/dev下创建my_device设备文件 。 class_create() ------------------------------------------------- linux-2.6.22/include/linux

实验四、主存空间的分配和回收

大憨熊 提交于 2020-01-19 10:39:27
实验四、主存空间的分配和回收 1. 目的和要求 1.1. 实验目的 用高级语言完成一个主存空间的分配和回收程序,以加深对动态分区分配方式及其算法的理解。 1.2. 实验要求 采用连续分配方式之动态分区分配存储管理,使用首次适应算法、循环首次适应算法、最佳适应算法和最坏适应算法4种算法完成设计。 (1)**设计一个作业申请队列以及作业完成后的释放顺序,实现主存的分配和回收。采用分区说明表进行。 (2)或在程序运行过程,由用户指定申请与释放。 (3)设计一个空闲区说明表,以保存某时刻主存空间占用情况。 把空闲区说明表的变化情况以及各作业的申请、释放情况显示。 2. 实验内容 根据指定的实验课题,完成设计、编码和调试工作,完成 实验报告 。 3. 实验环境 可以选用Visual C++作为开发环境。也可以选用Windows下的VB,CB或其他可视化环境,利用各种控件较为方便。自主选择实验环境。 4. 参考数据结构: #include<stdio.h> #include<conio.h> #include<string.h> #define MAX 24 struct partition{ char pn[10]; int begin; int size; int end; //////// char status; ////////// }; typedef struct