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.网络接口模块:支持许多网络硬件

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值