如何学习linux下的c/c++编程
我计划的学习历程:
1. c和c++的基础知识,这个和操作系统无关,在windows上也可以学。c语言语法相对简单一点,c++不需要把所有的知识点都学会,要知道基本的封装,继承,多态之类的,还有STL。更深入的学习应该是在以后的工作中遇到问题了再去查资料。
2. 看书《APUE》,做书上的习题,掌握文件,系统调用,线程、进程、网络编程等基本知识(多是c实现的),加深对语言和系统的了解。这个阶段实际上就是熟悉linux系统的API的过程了。使用的编程工具组合:VI/EMACS/GCC/GDB。虽然有可视化的工具CodeBlocks和Eclipse,但是对初学者没有必要使用。
3. 寻找一些别人写的优秀的代码来研究。可以到各大论坛的精华区,或者sf上面寻找一些小的开源工程研究下。比如一个简单的socket聊天程序,或者多线程程序。
4. 这个过程与3是同步进行的,开始自己动手尝试编写实际有用的程序。比如一个聊天程序,一个FTP客户端,或者一个Email收发程序,图片演示程序,小游戏,数据表单软件等等。
5. 选择感兴趣的地方钻研。linux下涉及的东西很多,比如多线程,网络,linux内核等。
6. 其他。c/c++只是一门语言,学linux不应该局限于此,象shell脚本,Python,Perl都是值得去学习。
相关文档:
New things to learn about Linux Scheduler):
1. Rotating Staircase Deadline cpu scheduler policy
2. CFS (Completely Fair Scheduler)
3. BFS (Brain Fuck Scheduler)
http://lwn.net/Articles/
http://kerneltrap.org/
......
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <fcntl.h>
#include <errno.h>
#include <string.h>
#include <signal.h>
#include <sys/types.h>
#include <sys/wait.h>
#include "include/lua.hpp"
bool g_bQuit = false;
void ......
1. df -lh
查磁盘使用情况
2. du -s /usr/* | sort -rn
这是按字节排序
3. du -sh /usr/* | sort -rn
这是按兆(M)来排序
4.选出排在前面的10个
du -s /usr/* | sort -rn | head
5.选出排在后面的10个
du -s /usr/* | sort -rn | tail
说明:/usr/*也可以改成你想到达的任何目录
如/usr/local/zhou/r ......
#include <stdio.h>
#include <signal.h>
#include <ctype.h>
#include <fcntl.h>
int g_count;
void Exit()
{
printf("I will exit, press any key to continue...(g_count = %d)\n", g_count);
exit(0);
}
int main(int argc, char* argv[])
{
struct sigaction almact;
pid_t ......
在ANSI C中,对文件的操作分为两种方式,即流式文件操作和I/O文件操作,下面就分别介绍之。
一、流式文件操作
这种方式的文件操作有一个重要的结构FILE,FILE在stdio.h中定义如下:
typedef struct {
int level; /* fill/empty level of buffer */
unsigned flags; /* File status flags */
char fd; /* File des ......