Linux Clone函数 之前某一次有过一次面试,问了内核中是怎么创建命名空间的? 下面就来扒一扒clone的精髓,以及如何通过它创建命名空间。...目录 Linux Clone函数 使用clone创建进程和线程 clone的使用 原型 描述 clone()封装函数 clone3() clone() 和clone3()参数的差异 子进程结束信号 set_tid...创建线程的函数pthread_create内部使用的也是clone函数。...在glibc的/sysdeps/unix/sysv/linux/createthread.c源码中可以看到,创建线程的函数create_thread中使用了clone函数,并指定了相关的flags:...它对API进行了一系列的提升,包括:附加标志位空间; 运用各种参数进行清理分离; 以及指定子堆栈区域大小的能力。 fork(2), clone3()会同时返回父进程和子进程。
【Linux API 揭秘】container_of函数详解 1、container_of函数介绍 container_of可以说是内核中使用最为频繁的一个函数了,简单来说,它的主要作用就是根据我们结构体中的已知的成员变量的地址...:container_of 文件位置:include/linux/container_of.h 该函数里面包括了一些封装好的宏定义以及函数,比如:static_assert、__same_type、offsetof..._Static_assert(expr, msg) 函数名称:static_assert 文件位置:include/linux/build_bug.h 函数解析:该宏定义主要用来 在编译时检查常量表达式...:__same_type 文件位置:include/linux/compiler.h 函数解析:该宏定义用于检查两个变量是否是同种类型 __builtin_types_compatible_p:gcc的内建函数...:offsetof 文件位置:include/linux/stddef.h 函数解析:该宏定义用于获取结构体中指定的成员,距离该结构体偏移量。
好在Linux内核检测到TCP紧急标志时,将通知应用程序有带外数据需要接收。内核通知应用程序带外数据到达的两种常见方式是: 1O复用产生的异常事件和SIGURG信号。...对这种情况,Linux给开发人员提供的解决方案是:对监听socket设置这些socket选项,那么accept返回的连接socket将自动继承这些选项。...网络信息API 利用域名获取IP地址 IP地址比域名发生变更的概率要高,所以利用IP地址编写程序并非上策。...getaddrinfo getaddrinfo函数既能通过主机名获得IP地址(内部使用的是gethostbyname函数),也能通过服务名获得端口号(内部使用的是getservbyname函数)。...getnameinfo和getaddrinfo函数成功时返回0,失败时返回错误码,可能的错误码如表: Linux下strerror函数能将数值错误码error转换成易读的字符串形式,同样下面的函数可将表错误码转换成字符串形式
Keras函数式API 之前所有的神经网络都是基于Sequential模型实现的,而且网络都是层的线性叠加。...不用Sequential序贯模型的解决方案:Keras函数式API 在线阅读地址:https://livebook.manning.com/book/deep-learning-with-python/...一个案例来理解:利用输入数据来预测一件二手衣服的价格 函数式API简介 In [1]: import tensorflow as tf from keras import Input, layers...API版本: In [4]: # 对应的函数式API版本 input_tensor = Input(shape=(64, )) x = layers.Dense(32, activation="relu...函数式API实现双输入问答模型 下面函数式API构建的模型设置两个分支:文本输入和问题输入;分别编码为向量,连接这两个向量。
1. access函数 包含头文件 #include 函数原型 int access(const char *pathname, int mode); 函数功能 判断文件权限以及文件是否存在...access函数返回的是无写权限,但是在root用户下使用access函数返回的是有写权限,这是为什么呢?...查看,或使用stat函数获取st_gid 函数返回值 成功返回0。...所以,如果你查看man手册如果发现没有函数原型,说明该函数有同名命令,需要加上章节才能查看函数的帮助手册 man 2 chown,系统调用都在第2章节。...4. rename函数 包含头文件 #include 函数原型 int rename(const char *oldpath, const char *newpath); 函数功能
二、fcntl函数 1. 阻塞与非阻塞 阻塞可能会发生在read()函数读取设备、读取管道或读取网络的时候,因为某种情况需要等待,而不会立即返回,叫做阻塞。...我们先写一个测试函数来看一下阻塞的效果,让read()函数读取标准输入输出设备tty的内容,如果标准输入输出没有内容的话,read()函数就会被阻塞,直到tty有内容了,才会继续执行。...因为是非阻塞,所以函数体内的循环会一直执行无限循环,所以要加一个睡眠函数,防止刷屏。...On Linux this command can only change the O_APPEND, O_ASYNC, O_DIRECT, O_NOATIME, and O_NONBLOCK flags...穿透与非穿透 上面介绍了stat函数并通过stat函数实现了 ls -l 命令的功能。我们上面演示了使用自己实现的 ./mls 查看文件信息,假如说使用 .
前言 SCF云函数对于我来说真的是非常好用,原先部署在服务器上的一些处理数据的函数可以直接交付给SCF来处理,省了很多服务器的费用。...本篇文章主要讲述如何使用API来批量操作SCF。...密钥(这里获取https://console.cloud.tencent.com/cam/capi)以及地域: # API密钥 cred = credential.Credential("SecretId...方法 接下来是涉及的一些方法,涉及函数生成、删除、异步配置、通用配置、触发器以及函数信息的获取方便后面判定函数状态是否适合操作。...,但因为实际需要一个用于复制,所以是对249个函数进行操作,限于API的请求限制这里的多线程可以再优化一下数量。
1. link函数 包含头文件 #include 函数原型 int link(const char *oldpath, const char *newpath); 函数功能 link...函数参数 oldpath:源文件名(路径) newpath:硬链接文件名(路径) 函数返回值 成功返回0。On success, zero is returned....2. symlink函数 包含头文件 #include 函数原型 int symlink(const char *oldpath, const char *newpath); 函数功能...读取软链接,这个函数只能读取软链接,不能读取硬链接。 函数参数 path:连接名(路径) buf:缓冲区(缓存读出的数据) bufsiz:缓冲区大小 函数返回值 成功返回缓冲区被填充的大小。...(注意同名命令unlink,查询函数man手册时要加章节2) 函数参数 pathname:链接名,也可以是文件名 函数返回值 成功返回0。
函数参数 buf:缓冲区,用于存放目录。...2. chdir函数 包含头文件 #include 函数原型 int chdir(const char *path); int fchdir(int fd); 函数功能 chdir...4. rmdir函数 包含头文件 #include 函数原型 int rmdir(const char *pathname); 函数功能 rmdir() deletes a directory...函数参数 name:目录名字。...> #include 函数原型 int closedir(DIR *dirp); 函数功能 关闭目录。
1 函数介绍 1) 函数原型 int getchar(void); 2) 函数功能 从stdin中读取一个字符。 3) 返回值 返回读取字符的ASCII值或者EOF字符或者出错值。...4) 头文件 #include 2 函数使用 2.1 getchar函数的特点 Linux下编写的一个例子: #include int main(void) { char ch; int num...重新编译并运行程序,输入字符串:hello[回车] 得第一次运行结果 当程序首次执行到while中的getchar时,getchar函数等待用户的输入,getchar函数一直等待用户输入,当用户按下回车表示用户输入完毕...getchar函数读取,因为while循环的条件已经为假)并得到以下输出界面 String输入字符串的长度为6在一次表明getchar读取了用户输入的回车。...3 额外总结 函数本身的特性与语句条件限制两者各自带来的作用需要分清楚。 Note Over。 版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。
一、系统API与C库函数的调用关系 当我们在C语言程序中调用一个库函数的时候,比如调用printf()函数,实际上它是通过文件指针来指向要打印的位置的。...并且,printf()函数会调用Linux的系统函数write()函数(它是一个系统接口,也可以人工调用),write()函数再继续调用sys_write()函数(这个函数只能是操作系统去调用),sys_write...在系统API中,主要包含了这些函数:与文件IO相关的函数接口(比如open(),close(),write(),read()等);与文件属性相关的函数;与目录操作相关的函数;与目录遍历相关的函数;还有dup...表示查看第二章,也就是系统调用API。...,只不过我们在平时的学习中可能很少用到,main的返回值是int类型的,main函数的参数在Linux下编程用的还是比较多的。
vsnprintf vsnprintf函数是C语言标准库中的一个函数,它的作用是将格式化的数据写入一个字符串缓冲区中,同时允许指定缓冲区的大小,以防止缓冲区溢出。...这个函数在C99及以后的版本中得到了广泛的支持,也在C++11及以后的版本中可用。...函数原型 vsnprintf函数的原型如下: int vsnprintf(char *str, size_t size, const char *format, va_list ap); 参数说明 str...然后,它使用vsnprintf函数将这些参数格式化并写入缓冲区,并通过printf函数打印出来。注意,在实际应用中,我们可能需要更仔细地处理缓冲区的大小和终止的空字符。...具体请看这篇博客:日志函数的简单方法
相关API笔记(一) Linux网络编程基础API 1....长整型函数 (htonl,ntohl)通常用来转换IP地址 短整型函数 (htonl,ntohl)通常用来转换端口号 2....但是该函数内部使用一个静态变量来保存结果的,函数的返回值是这个静态内存,多次调用会覆盖到之前调用产生的结果。...地址信息函数 想知道连接socket的本端socket地址,以及远端的socket地址,可以使用如下函数 #include //获取sockfd对应的本端socket地址,...网络信息API gethostbyname和gethostbyaddr #include //根据主机名获取主机的完整信息 struct hostnet* gethostbyname
函数编程:强大的 Stream API 图片 每博一文案 只要有人的地方,世界就不会是冰冷的,我们可以平凡,但绝对不可以平庸。...第一个便是 Lambda 表达式,想要进一步了解的大家可以移步至 函数式编程:Lambda 表达式_ChinaRainbowSea的博客-CSDN博客 ;另外一个则为是我们这个主题了:Stream API...Stream API 是在 java.util.stream 包下的,Stream 是把真正的函数式编程 风格引入到 Java 中,这时目前为止对 java 类库最好的补充了,因为 Stream API...执行的数据库查询 也可以使用 Stream API 的来并行执行操作。...extends R> mapper) 接收一个函数作为参数,该函数会被应用到每个元素上,并将其映射成一个新的元素。 注意: 返回的是一个新的对象,不会修改原本的数据信息的。
read和write函数 1. read函数 包含头文件 #include 函数原型 ssize_t read(int fd, void *buf, size_t count);...name"); return -1; } int fd = open(argv[1], O_RDWR | O_CREAT); write(fd, "hello linux...STDIN_FILENO STDERR_FILENO*/ } close(fd); return 0; } 我们知道,在C语言中,字符串都是以 '\0' 结尾的,比如 "hello linux...write(fd, "hello linux...", 15); 我们来测试下程序,首先明确一点,字符串会写入相应文件,但是不会打印在屏幕中,这个后面分析。...name"); return -1; } int fd = open(argv[1], O_RDWR | O_CREAT); write(fd, "hello linux
上一篇学习了 FreeRTOS 的任务基础知识,本文就正式学习如何使用 FreeRTOS 中有关任务的 API 函数。 先学习怎么用,先知其然,后面在知其所以然。...1、任务创建和删除 API 函数 xTaxkCreate():创建一个任务,任务需要 RAM 来保存与任务有关的状态信息(任务控制块),任务也需要一定的 RAM 来作为任务堆栈。...此函数原型如下: 2、任务挂起和恢复 API 函数 有时候我们需要暂停某个任务的运行,过一段时间以后在重新运行。这个时候要是使用任务删除和重建的方法的话那么任务中变量保存的值肯定丢失了!...FreeRTOS 的任务挂起和恢复 API 函数如表所示: vTaskSuspend():此函数用于将某个任务设置为挂起态,进入挂起态的任务永远都不会进入运行态。...FreeRTOS 中任务相关的 API 当然不止有这几个,还有很多其他 API,我们在下一篇文章再讲解。但大部分情况下,我们要用的就只有这几个 API:创建、挂起、恢复、删除,就四个。
常用Windows API 常用Windows API API之网络函数 API之消息函数 API之文件处理函数 API之打印函数 API之文本和字体函数 API之菜单函数 API之位图图标和光栅运算函数...API之绘图函数 API之设备场景函数 API之硬件与系统函数 API之进程和线程函数 API之控件与消息函数 1....API之文件处理函数 CloseHandle 关闭一个内核对象。...API之绘图函数 AbortPath 抛弃选入指定设备场景中的所有路径。...API之硬件与系统函数 ActivateKeyboardLayout 激活一个新的键盘布局。
学过了 FreeRTOS 的任务管理,但是真正涉及到的与任务相关的 API 函数只有那么几个:任务的创建、删除、挂起、恢复。...FreeRTOS 还有很多与任务相关的 API 函数,不过这些 API 函数大多都是辅助函数了,本文我们就来看一下这些与任务相关的其他的 API 函数。...1、函数 uxTaskPriorityGet() 此函数用来获取指定任务的优先级,要使用此函数的话宏 INCLUDE_uxTaskPriorityGet 应 该定义为 1。...16、函数 vTaskList() 此函数会创建一个表格来描述每个任务的详细信息。...18、函数 vTaskSetApplicationTaskTag() 此函数是为高级用户准备的,此函数用于设置某个任务的标签值 ,这个标签值的具体函数和用法由用户自行决定,FreeRTOS 内核不会使用这个标签值
一、 套接字Api详细介绍 1. 套接字描述符 首先会先到的是文件描述符,对Linux一切皆文件的哲学又多懂了一点儿点儿。 套接字是通信端点的抽象。...将套接字与地址绑定 使用bind函数将地址绑定到一个套接字上。...注意:linux的man命令可以查看api的详细说明,而且还有例子,也挺不错的。 4....使用函数accept获得连接请求并建立连接。...read和write函数我几乎不用,了解一下即可。
1.首先要打开目录文件 DIR *opendir( const char *name); DIR *fdopendir( int fd); 2.读取目录文件信息的函数 注意:这是个库函数 struct...DT_UNKNOWN The file type is unknown. readdir()函数实例: 注意: 每次使用readdir后,readdir会读到下一个文件,readdir是依次读出目录中的所有文件
领取专属 10元无门槛券
手把手带您无忧上云