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’。

转载于:https://www.cnblogs.com/sslblog/p/5696021.html