每日练习
2017-02-25 22:44
344 查看
C/C++
1.
//为了实现链式操作将目的地址返回
//注意source的const
//两个指针不能为空
char * strcpy(char *strDest, const char *strSrc)
{
assert((strDest != NULL) && (strSrc != NULL));
char *address = strDest;
while ((*strDest++ = *strSrc++) != ‘\0’);
return address;
}
2.
在申请完内存以后一定要判断是否申请成功
free后一定要讲指针设置为NULL不然有可能生成野指针
3.0值判断
BOOL : if (!var)
int : if (0 == var)
指针 : if (NULL == var)
float : if ((x <= 0.0000000001) && (x >= -0.0000000001))
4.
当类中包括指针类成员变量时,一定要重载其拷贝构造函数、赋值函数和析构函数,这既是对C++程序员的基本要求,也是《Effective C++》中特别强调的条款
class String
{
//注意所有的内存申请以后最好判空
public:
String(const char *str = NULL); // 普通构造函数 if(str==NULL){m_data=new char[1]; *m_data=’\0’;}
String(const String &other); // 拷贝构造函数
~String(void); // 析构函数
String & operator =(const String &other); // 赋值函数,需要释放原先的内存
private:
char *m_data; // 用于保存字符串
};
操作系统:
1.系统的主要功能有
处理机管理,存储器管理,设备管理,文件系统
2.对程序进行编译不是操作系统直接完成的功能
3.共享设备不需要用户安装设备驱动程序
4.为多道系统特意准备的有
(1)特权指令(2)时钟(3)跳转指令
5.分时系统和实时系统对用户的请求在一定的时间内给予及时响应
6.在计算机系统中,操作系统是核心系统软件
7.创建进程必须步骤
(1) 申请空白PCB(进程控制块);
(2) 为新进程分派资源;
(3) 初始化PCB;
(4) 将新进程插入就绪队列;
8.
PV操作:
1)semaphore的取值必须大于或等于0。0表示当前已没有空闲资源,而正数表示当前空闲资源的数量;
2)semaphore的取值可正可负,负数的绝对值表示正在等待进入 临界区 的进程个数。
P原语:P是荷兰语Proberen(测试)的首字母。为阻塞原语,负责把当前进程由运行状态转换为阻塞状态,直到另外一个进程唤醒它。
操作为:申请一个空闲资源(把信号量减1),若成功,则退出;若失败,则该进程被阻塞;
V原语:V是荷兰语Verhogen(增加)的首字母。为唤醒原语,负责把一个被阻塞的进程唤醒,它有一个参数表,存放着等待被唤醒的进程信息。
操作为:释放一个被占用的资源(把信号量加1),如果发现有被阻塞的进程,则选择一个唤醒之。
9.
设两个进程共用一个临界资源的互斥信号量mutex,当mutex=1时表示没有一
个进程进入临界区
10.为了实现多道程序设计,计算机最需要更大的内存
11.
活动就绪——suspend——>静止就绪
活动就绪<——active——静止就绪
活动阻塞——suspend——>静止阻塞
活动阻塞<——active——静止阻塞
12.
Unix操作系统的进程控制块中常驻内存是proc结构
Linux:
1.page fault是因为所需访问虚拟内存未被装载
2.建立动态路由需要用到的文件有/etc/gateways
3.推出unix系统账户之后还需要继续运行某个进程,那么可用nohup
4.HTTP在应用层,交换机在数据链路层(网桥也在)
5.uptime命令主要用于获取主机运行时间和查询linux系统负载等信息
vmstat命令可以查看查看cpu负载
sar命令可以查看网络接口信息
6.系统网卡数量不会限制linux服务器并发连接数
7. - rw - r–r–权限表示方法
8.arp协议用了broadcast
9.如何查看linux主机的默认路由,可用route和netstat
1.
//为了实现链式操作将目的地址返回
//注意source的const
//两个指针不能为空
char * strcpy(char *strDest, const char *strSrc)
{
assert((strDest != NULL) && (strSrc != NULL));
char *address = strDest;
while ((*strDest++ = *strSrc++) != ‘\0’);
return address;
}
2.
在申请完内存以后一定要判断是否申请成功
free后一定要讲指针设置为NULL不然有可能生成野指针
3.0值判断
BOOL : if (!var)
int : if (0 == var)
指针 : if (NULL == var)
float : if ((x <= 0.0000000001) && (x >= -0.0000000001))
4.
当类中包括指针类成员变量时,一定要重载其拷贝构造函数、赋值函数和析构函数,这既是对C++程序员的基本要求,也是《Effective C++》中特别强调的条款
class String
{
//注意所有的内存申请以后最好判空
public:
String(const char *str = NULL); // 普通构造函数 if(str==NULL){m_data=new char[1]; *m_data=’\0’;}
String(const String &other); // 拷贝构造函数
~String(void); // 析构函数
String & operator =(const String &other); // 赋值函数,需要释放原先的内存
private:
char *m_data; // 用于保存字符串
};
操作系统:
1.系统的主要功能有
处理机管理,存储器管理,设备管理,文件系统
2.对程序进行编译不是操作系统直接完成的功能
3.共享设备不需要用户安装设备驱动程序
4.为多道系统特意准备的有
(1)特权指令(2)时钟(3)跳转指令
5.分时系统和实时系统对用户的请求在一定的时间内给予及时响应
6.在计算机系统中,操作系统是核心系统软件
7.创建进程必须步骤
(1) 申请空白PCB(进程控制块);
(2) 为新进程分派资源;
(3) 初始化PCB;
(4) 将新进程插入就绪队列;
8.
PV操作:
1)semaphore的取值必须大于或等于0。0表示当前已没有空闲资源,而正数表示当前空闲资源的数量;
2)semaphore的取值可正可负,负数的绝对值表示正在等待进入 临界区 的进程个数。
P原语:P是荷兰语Proberen(测试)的首字母。为阻塞原语,负责把当前进程由运行状态转换为阻塞状态,直到另外一个进程唤醒它。
操作为:申请一个空闲资源(把信号量减1),若成功,则退出;若失败,则该进程被阻塞;
V原语:V是荷兰语Verhogen(增加)的首字母。为唤醒原语,负责把一个被阻塞的进程唤醒,它有一个参数表,存放着等待被唤醒的进程信息。
操作为:释放一个被占用的资源(把信号量加1),如果发现有被阻塞的进程,则选择一个唤醒之。
9.
设两个进程共用一个临界资源的互斥信号量mutex,当mutex=1时表示没有一
个进程进入临界区
10.为了实现多道程序设计,计算机最需要更大的内存
11.
活动就绪——suspend——>静止就绪
活动就绪<——active——静止就绪
活动阻塞——suspend——>静止阻塞
活动阻塞<——active——静止阻塞
12.
Unix操作系统的进程控制块中常驻内存是proc结构
Linux:
1.page fault是因为所需访问虚拟内存未被装载
2.建立动态路由需要用到的文件有/etc/gateways
3.推出unix系统账户之后还需要继续运行某个进程,那么可用nohup
4.HTTP在应用层,交换机在数据链路层(网桥也在)
5.uptime命令主要用于获取主机运行时间和查询linux系统负载等信息
vmstat命令可以查看查看cpu负载
sar命令可以查看网络接口信息
6.系统网卡数量不会限制linux服务器并发连接数
7. - rw - r–r–权限表示方法
8.arp协议用了broadcast
9.如何查看linux主机的默认路由,可用route和netstat
相关文章推荐
- 每日算法练习之括号配对
- Python每日练习 04 你有一个目录,装有很多图片,现在你要把它们的尺寸变成不都大于Iphone5分辨率的大小
- Python每日练习 14 15 16 将某txt的内容写入到xls文件中
- 英语每日听写练习 Day 14
- #每日Linux小练习#01 select命令的使用
- #每日Linux小练习#03 正则表达式
- #每日Linux小练习#04 find指令
- #每日Linux小练习#08 Shell Script知识点总结(下)
- 每日算法练习之李白喝酒问题
- 每日练习(11)
- 每日练习(13)
- 每日练习
- 每日练习|Day015
- 每日练习2017-11-07
- 每日练习_06
- 每日练习(4)
- 每日练习_07
- 【每日一练】java基本练习
- [每日练习]数组有N+M个数字, 数字的范围为1 ... N, 打印重复的元素, 要求O(M + N), 不可以用额外的空间
- [每日练习]十进制数转换为n进制数