本文主要是介绍8.14笔试题归纳(海康,海格),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
目录
1.同一进程内的所有线程共享什么
2.一个端口可以绑定多个套接字,(Io复用),udp端口号最大为65535
3.关于signal()函数的定义
void (*signal(int signal,int *(func)(int)),signal是一个函数
4.atoi(字符串到数字的转化)细品 得注意
5.关于memcpy函数的复制方式
6.linux下find和grep命令的区别(经常见到)
7.linux驱动下,insmod和modprobe的区别
8.linux操作系统内核的基本管理模块
1.同一进程内的所有线程共享什么
程序计数器 线程有自己的error和堆内存
2.一个端口可以绑定多个套接字,(Io复用),udp端口号最大为65535
c类网络可以容纳几台主机?
a类网络-2的24次幂-2个保留地址
b类网络-2的16次幂-2
c类网络-2的8次幂-2=254
3.关于signal()函数的定义
void (*signal(int signal,int *(func)(int)),signal是一个函数
4.atoi(字符串到数字的转化)细品 得注意
#include <stdio.h>
#include <stdlib.h>
#include <assert.h>
#include <limits.h>typedef enum Ret
{VALID,INVALID
}Ret;Ret state = INVALID; //用来判断异常的全局变量int My_Atoi(const char* str)
{int flag = 1; //正负long long ret = 0; //返回值assert(str);if(str == NULL) //空指针{return (int)ret;}if(str == '\0') //空字符串{return (int)ret;}while(*str == ' ') //空白字符{str++;}if(str == '\0') //空白字符串{return (int)ret;}else if(*str == '+' || *str == '-'){if(*str == '-'){flag = -1;}str++;}while(*str){if((*str <= '9') && (*str >= '0')){state = VALID;ret = ret * 10 + flag * (*str - '0');str++;if(ret > INT_MAX) //上溢出{state = INVALID;printf("上溢出,");return (int)INT_MAX;}if(ret < INT_MIN) //下溢出{state = INVALID;printf("下溢出,");return (int)INT_MIN;}}else //异常字符{return (int)ret;}}return (int)ret;
}
5.关于memcpy函数的复制方式
memcpy(&data[2],data,5);
比如说这题就是在同一个数组中,打印出来的结果是1212345890 ,由此可见,他应该是先把5个数放到一个单独的空间内,再把他们挨个复制给原数组。
6.linux下find和grep命令的区别(经常见到)
find命令是根据文件的属性进行查找,如文件名,文件大小,所有者,所属组,是否为空,访问时间,修改时间等。
grep是根据文件的内容进行查找,会对文件的每一行按照给定的模式(patter)进行匹配查找
如果说在某目录下查找某字符串,就用find
7.linux驱动下,insmod和modprobe的区别
1.两者类似,都是动态加载驱动模块,但是modprobe可以解决load module时的依赖关系,insmod不能解决依赖问题,如果你要加载的驱动模块不依赖其他.ko,那么用insmod更好,因为它可以在任何目录下执行,反之,则用modprobe.
8.linux操作系统内核的基本管理模块
1.进程调度模块:用来控制进制对cpu资源的合理使用,使各个进程可以公平合理的访问cpu
2.内存管理模块:MMU内存管理单元,可以利用文件系统,把暂时不用的内存数据交换到外部储存设备,需要时再换回来(交换分区)
3.文件系统模块:支持对外部设备的驱动和储存
4.进程间通信模块:支持多种通信
5.网络接口模块:支持许多网络硬件
这篇关于8.14笔试题归纳(海康,海格)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!