1.liunx 编译c语言代码
gcc -o filename filename.c
编译后产生.out的可执行文件
执行方法: ./filename
2.#include<arpa/inet.h>
头文件中包含inet_addr(“192.168.125.129”)函数可以将点分十进制的IP地址变为长网络字节序
3. #include<unistd.h>
头文件中包含close(),关闭socket。
4.htons(8888)其中,8888不需要加引号
5.memset函数
作用 :将s所指的大小为n的内存块每个字节的内容设置为ch.
头文件 :<string.h>
原型声明:void *memset(void*s,int ch,unsigned int n)
参数说明:s为待设置内存的首部地址
ch为要设置的值
n为内存块大小
返回值;返回值为指向s的指针
6.c语言中字符串的输入
创建字符串储存空间
char* name;
scarf(“%s”,name);
这种情况下,name和指针可能指向内存中的任意地址,所以对系统不安全
应该------->char name[100];
gets函数
作用 :从系统的标准输入设备获得一个字符串,去掉用户输入的换行符,加入’\0’,将字符串放入参数所指的地址空间。
头文件:<stdio.h>
原型说明:char* gets(char* str)
参数说明:str指向要输入的地址空间
返回值:返回指向该地址空间的指针
fgets函数
作用:类似gets函数,不去掉用户输入的换行符,还可以从文件中读取数据
头文件:<stdio.h>
原型说明;char* fgets(char * str, int len ,stdin)
参数说明:str指向要输入的数组,len输入字符串最大的长度,stdin表示从键盘输入
返回值: 指向该数组的地址空间
与gets区别:gets函数并不检查输入字符串的大小,当输入字符串大于分配的内存时,就
会造成内存溢出。
gets会去掉换行符,而fgets保留换行符到数组中,但是可以用strchr()来将’\n’
换为’\0’。