Linux编程笔记

发布 2021-05-12 02:04:28 阅读 2719

资源。#include <>线程 -lpthread

#include

#include <>

#include

#include <>

#include <>

#include

#include <>

#include

#include

#include

#include <>

#include

2024年9月16日。

/c+复习。

2024年9月17日上午。

、静态库文件与动态库文件。

2、vm使用与windows相连。

a、linux设置网卡 vi /etc/sysconfig/network-scripts/ifcfg-eth0,修改ip地址。

b、设置虚拟网卡ip与linux中的ip在同一网段。

c、在vm中设置以太网卡为虚拟网卡连接vm机。

d、service network restart / service iptables stop / smbpasswd 改smb服务密码。

就可以在windows中通过 ip 访问linux服务器了。

e、改成在windows中可写linux中的文件 vi /etc/samba/ 改[root]

下的writeable = yes 。添加path = 则可以在windows中看到linux中的所有目录了。linux中的/,在windows中即反映为root目录下面再有root,home,etc等等。

注】若把虚拟机也设在与主机在同一网段上(如win192.168.0.

70;linux192.168.0.

211)则虚拟机的网卡设置时,直接设置成[网络连接:桥接,直接连接到物理网络]。

2024年9月17日下午。

markfile

#include <>

int func()

puts("func(),haha!")return 0;}

#include <>

int func();

int main()

func();return 0;}

#makefile

objspatsubst %.c,%.o,$(wildcard *.c)) #定义变量。

ccgcc定义变量。

cflags :=o2定义变量。

$(objs调用变量。

$(cc) $o

#%.o:%.c

# $(cc) $cflags) -c $

clean定义一个执行体。

$(rm) *o *.out -rf

test:@echo "source file list:$(patsubst %.c,%.o,$(wildcard *.c))"

phony : clean test

2024年9月18日上午。

讲课内容:makefile

makefile中的变量与函数。

作业:#include <>

int main()

puts(""return 0;}

#include <>

int main()

puts(""return 0;}

#include <>

int main()

puts(""return 0;}

写makefile 一次性编译链接三个可执行文件。

#makefile内容如下:

outs :=patsubst %.c,%.out,$(wildcard *.c))

ccgccall:$(outs)

.out:%.c

$(cc) $o $@g –wall -lpthread

clean:

$(rm) *o *.out -rf

phony : clean

2024年9月18日下午。

gdb调试工具。

g++编译时,带-g –wall (表示输出所有的警告warning + all信息。)

gdb 或gdb 然后用file

list命令:显示源程序,eg:l 1, 从第一行开始, 显示10行。

l 1,20 从第一行开始,显示20行。

l 显示main函数。

ptype cmyvector 看变量的类型。

bt 显示执行到**了,还可以显示函数的调用关系。显示的这一行表示马上要执行的行。

p m_size 打印m_size的值。 p /x m_size 表示以16进制显示。

next/step(进入函数内部):单步调试。

finish 完成当前的函数。即跳出已经进入的函数,回到调入点。

break(b) 72 即在72行设置断点。删除断点 d 72 ; d 则是删除所有断点 linux y/n时,默认为n,输入y才表示确定。在某函数处设断点 b main。

查看断点信息 info b

continue 让程序执行到下一个断点。

退出gdb quit(q)

作业,gdb调试以下程序。

#include

using namespace std;

填充该类,以便main()中的调用能正常。

工作,注意,不要修改main()中的任何语句。

class cmyvector

public:

cmyvector()

~cmyvector()

cmyvector(const cmyvector &src)

void push_back(int data)

int size()

int operator(int iindex)

cmyvector &operator=(const cmyvector &src)

private:

int *m_pdata;

int m_isize;

int main()

cmyvector v;

for(int i=0; i< i++)

cout< cout< /上面语句应该输出"2 6 4 5 "

cmyvector v2=v;

for(i=0; i< i++)

cout< cout< /上面语句应该输出"2 6 4 5 6 "

cmyvector v3;

//i的变量要提出在这里写以兼容linux与windows.

//int i = 0;

v3=v2;

for(i=0; i< i++)linux中,此i已经name lookup of "i" changed for new iso 'for' /scoping using obsolete binding at 'i'

/??可以把for 看成一个小函数,另行开stock,i在{}还存在,但是在for ()里不存在了。

cout< cout< /上面语句应该输出"2 6 4 5 6 0 "

return 0;

不清楚则把每个变量还原。

2024年9月20日上午。

内容,linux下文件读取方法。

open,write close 与c标准库的fopen,fwrite,fclose区别:

1\write不用关闭即写入到文件,没有缓冲区,比较低级的操作方式。fwrite有缓冲区,所以fwrite更高效。不用总是写硬盘。所以以后要选用fwrite方式。

2\fwrite移植性好。

3\若在同一进程中,用两种方式打开不同文件(或先关闭再打开另一个),所用的文件打开表是同一个,但是在文件打开表中的文件描述符是不同的。

重要函数 fileno(fp) /得到文件指针所指向的文件打开表文件描述符。

fdopen(fd,”wb”) c标准库函数,通过文件打开表的文件描述符得到文件指针。

#include <>

#include

#include <>

#include

#include

#include <>

linux系统编程笔记

进程是一个具有一定独立功能的程序的一次运行活动。一组并发进程按一定的顺序执行的过程称为进程间的同步。include include pid t getpid void 获取本进程id。pid t getppid void 获取父进程id。include pid t fork void 功能 创建子进...

linux高级编程day

linux高级编程day04 笔记 posted on 2012 12 31 15 30 鑫龙阅读 207 评论 0 编辑收藏引用所属分类 杨强linux 笔记系列 一。io与文件映射。的共享与效率。read与write其中数据缓冲的大小。读取数据的缓冲大小 getpagesize。2.定位与定位读...

《LINUX系统及其编程》复习

1 linux系统的结构。2 linux分区的创建 分区类型 分区参数 3 交换分区 swap 的作用。习题 15 4 linux终端的数量及工作方式 linux虚拟控制台的选择方法。5 什么是shell?shell的作用是什么?6 shell提示符 用户登录名 主机名当前目录 或者 7 输入输出重...