Browse Source

1. linux 常用命令记录
2. c笔记

kindring 1 year ago
parent
commit
b3b5bb5110
5 changed files with 155 additions and 4 deletions
  1. 48 1
      C与C++/c中基础函数用法.md
  2. 43 3
      C与C++/基本知识.md
  3. 3 0
      js/dom相关记录.md
  4. 12 0
      linux/scp操作.md
  5. 49 0
      linux/常用命令.md

+ 48 - 1
C与C++/c中基础函数用法.md

@@ -1 +1,48 @@
-第二个参数level是被设置的选项的级别,如果想要在套接字级别上设置选项,就必须把level设置为 SOL_SOCKET。
+# c中基础函数用法
+## `setsockopt`函数
+第二个参数level是被设置的选项的级别,如果想要在套接字级别上设置选项,就必须把level设置为 SOL_SOCKET。
+```c++
+int setsockopt(int sockfd, int level, int optname, const void *optval, socklen_t optlen);
+```
+## `memset` 函数
+> void *memset(void *s, int ch, size_t n);
+### 作用
+> En   
+> Copies the value static_cast`<unsigned char>`(ch) into each of the first count characters of the object pointed to by dest. If the object is a potentially-overlapping subobject or is not TriviallyCopyable (e.g., scalar, C-compatible struct, or an array of trivially copyable type), the behavior is undefined. If count is greater than the size of the object pointed to by dest, the behavior is undefined.  
+> Ch  
+> 将ch的值复制到dest指向的对象的前count个字符中。如果对象是潜在重叠的子对象或不是TriviallyCopyable(例如,标量,C兼容的结构或平凡可复制的类型的数组),则行为是未定义的。如果count大于dest指向的对象的大小,则行为是未定义的。
+
+复制ch的值到 s 指向的对象的前 n 个字符中。
+
+### 语法
+```c++
+void *memset(void *s, int ch, size_t n);
+```
+### 参数
+- s: 指向要填充的内存块的指针
+- ch: 要被设置的值
+- n: 要被设置的内存块的大小,以字节为单位
+
+### 返回值
+- 返回一个指向内存块 s 的指针。
+## `snprintf` 函数
+### 作用
+> En
+> Writes formatted data from variable argument list to sized buffer.
+> Ch
+> 将格式化的数据从变量参数列表写入大小缓冲区。
+
+
+### 语法
+```c++
+int snprintf( char *buffer, size_t buf_size, const char *format, ... );//可变参数
+```
+### 参数
+- buffer: 指向用于存储输出结果的缓冲区的指针。
+- buf_size: 缓冲区的最大长度。
+- format: 格式字符串,包含要写入缓冲区的文本。它可以包含以下占位符:  
+  - %s: 字符串
+  - %c: 单个字符
+  - %d: 十进制整数
+  - %f: 浮点数
+  - %x: 十六进制整数

+ 43 - 3
C与C++/基本知识.md

@@ -1,4 +1,5 @@
 # `cpp`基本知识
+## 指针与引用的区别
 ## 函数相关
 ### 双冒号
 1. 指定作用域 前面是作用域等类名称,后面接类的成员名称
@@ -60,11 +61,50 @@ int a;
 int &b=a;
 ``` 
 ## 地址赋值运算符
-> & 变量名//获得该变量的地址
+> & 变量名 //获得该变量在内存中的地址  
 > Int *p=&a  //定义整形指针变量,并将a的地址赋值给指针变量。
+
+### 变量的地址
+> 变量的地址就是变量在内存中的位置,可以通过&运算符来获取变量的地址
+### `#e` 获取地址 | `*` 获取地址中的值
 ```c++
 int a;
 int b = &a;//得到a变量申请的地址
 ```
- ## 枚举
- 
+
+
+## `*`符号的作用
+### 指针声明符
+#### `#d` 获取变量的`地址`
+用于声明一个指针变量,指针变量存储的是一个地址,这个地址指向的是另一个变量  
+#### `#e` 获取变量的`地址`
+```c++
+int a;
+int *p=&a; //定义整形指针变量,并将a的地址赋值给指针变量。
+```
+#### `#d` 从地址中取值
+可以从一个指针变量中获取对应的值
+#### `#e` 获取地址中的值
+```c++
+int a;
+int *p=&a;
+printf("%d",*p); //输出a的值
+```
+### 指针函数
+#### `#d` 函数返回 `地址`
+函数的返回值是一个`地址`
+#### `#e` 函数返回 `地址`
+```c++
+int *fun()
+{
+    int a=10;
+    return &a;
+}
+int main()
+{
+    int *p=fun();
+    printf("%d",*p);//输出10
+    return 0;
+}
+```
+

+ 3 - 0
js/dom相关记录.md

@@ -35,6 +35,7 @@
 可以通过控制台可以看见子元素都赋予了一个mouseout的事件. 
     ![问题图片](../img/jsEventBind.png)
 
+
 4. 解决方法
 监听事件的处理函数中通过 `e.target` 来判定可以由什么`dom`进行触发,此处因为业务问题多加一个`a标签`的判断
 ```Javascript
@@ -46,3 +47,5 @@ Element.addEventListener('mouseout',function(e){
 
 ``` 
 
+
+

+ 12 - 0
linux/scp操作.md

@@ -0,0 +1,12 @@
+# scp操作
+## 上传
+### 单文件上传至指定目录
+#### 命令列子
+```bash
+scp /local_file username@remotehost:/remote_file
+```
+#### 解释
+* /local_file:本地文件路径
+* username:远程主机用户名
+* remotehost:远程主机地址
+* /remote_file:远程主机文件路径

+ 49 - 0
linux/常用命令.md

@@ -0,0 +1,49 @@
+# linux 下常用命令笔记
+## cp
+### 作用
+复制文件或目录至指定位置
+### 示例 复制目录
+```shell
+cp -r /home/abc /home/def # 复制目录
+```
+### 示例 复制文件
+```shell
+cp /home/abc /home/def # 复制文件
+```
+### 示例 复制文件并重命名
+```shell
+cp /home/abc /home/def/abc # 复制文件并重命名
+```
+### 示例 复制多个文件至指定目录
+```shell
+cp /home/abc /home/def /home/ghi # 复制多个文件至指定目录
+```
+
+### 示例 复制多个文件至指定目录并重命名
+```shell
+cp /home/abc /home/def /home/ghi /home/jkl # 复制多个文件至指定目录并重命名
+```
+
+### 可选参数
+#### -r
+1. 作用  
+> 复制目录,复制目录时必须加上此参数
+2. 示例
+```shell
+cp -r /home/abc /home/def # 复制目录
+```
+#### -f
+1. 作用
+> 强制复制,如果目标文件已经存在,不会询问用户,直接覆盖
+2. 示例
+```shell
+cp -f /home/abc /home/def # 强制复制
+```
+#### -i
+1. 作用
+> 交互式复制,在覆盖已存在的目标文件之前提示用户
+2. 示例
+```shell
+cp -i /home/abc /home/def # 交互式复制
+```
+