- 浏览: 328061 次
- 性别:
- 来自: 南京
-
文章分类
最新评论
-
huangyunbin:
swc.advance(); 这个什么时候被调用是最核心的 ...
滑动窗口计数java实现 -
80后的童年2:
深入浅出MongoDB应用实战开发网盘地址:https://p ...
MongoDB 从入门到精通专题教程 -
rryymmoK:
深入浅出MongoDB应用实战开发下载地址:http://pa ...
MongoDB 从入门到精通专题教程 -
u012352249:
怎么支持多个窗口啊?
滑动窗口计数java实现 -
rryymmoK:
深入浅出MongoDB应用实战开发百度网盘下载:链接:http ...
MongoDB 从入门到精通专题教程
* UC
+ 文件系统
- 目录操作
- 文件操作
+ 多进程
- 进程间关系
- 进程间通信
+ 网络通信
- 基础知识
- 实践(tcp/udp)
QT,KDE: Linux环境下的图形环境编程
=================================================================
* 环境变量:
+ 如何在程序中取得环境变量的内容?
在进程中设置的环境变量只在本进程与子进程里使用
因此我们几乎不在程序里修改环境变量.
* 编程习惯:
1, 向函数传递指针数组的时候,如果没有说明元素个数,总是用一个NULL放在末尾.以
NULL作为结束标志.
2, 返回指针的函数,正常返回一个非空指针,出错返回NULL.
3, 返回整数函数,正常返回一个非负整数(通常是0),出错返回负数(通常是-1)
perror("提示");//显示内容为: 提示:错误信息文字描述
-----------------------------------------------------------
* 用户信息:
设置-用户权限:chmod u+s a.out//把用户ID符加到文件上
//指权限沾符到这个文件上,让使用这个文件的用户都有拥有者一样的权限
XXX_t 表示是一个整数
struct passwd* getpwuid (int userid)//得到一个指向passwd结构的指针,该结构
包括用户相关信息记录.
---------------------------------------------------------
* 文件系统:
+ 目录
pwd:print working directory
int stat(const char* path/*文件名*/,stat* buf)函数;//用来取得一个文件的信
息
int mkdir("新目录名",权限);//创建目录
int rmdir("目录名");//删除目录
getcwd(字符数组名,字符数组长度);//取得当前目录名
chdir("目录名");//设置当前目录名,在执行期间有效,程序结束失效
rename("旧名","新名");//给目录或文件改名.
===================================================
+ 文件的操作 02:03:17
文件权限的差别
int access(const char *path/*文件名*/,int amode)
amode:R_OK,W_OK,X_OK,F_OK(是否存在)
如果有指定权限,返回0.没有返回小于0
if(!access..)
用open()函数打开一个文件
ofstream fout;
fout.open("文件名");
int open(const char* pathname,int oflag,...);
<O_RDONLY|O_WRONLY|O_RDWR>这三个中必选一个,也只能选一个.
O_APPEND O_CREAT O_EXCL 可写可不写.
如果有O_CREAT,要传第三个参数就是创建文件权限,一般是8进制0755或0644
O_CREAT|O_EXCL表示必须创建新文件
返回文件描述符fd
进程使用文件描述符来操作文件.
文件描述符
shell产生三个标准文件描述符
0,1,2对应于cin,cout,cerr
删除文件:
unlink("文件名");//
remove("文件名");//
在UC里都是用文件描述符来描述文件
在对文件读的时候,如果读到的字节数小于要求的字节数,表示读完了
write(fd,内存地址,字节数)//向文件写
读和写都是顺序的.
off_t lseek(int fd, off_t offset, int whene);
whene:SEEK_SET SEEK_CUR SEEK_END
对应core C++ 中的fin.seekg(offset);
fout.seekp(offset);
<>,<sys/stat.h>,<dirent.h>//目录操作头文件
+ 文件系统
- 目录操作
- 文件操作
+ 多进程
- 进程间关系
- 进程间通信
+ 网络通信
- 基础知识
- 实践(tcp/udp)
QT,KDE: Linux环境下的图形环境编程
=================================================================
* 环境变量:
+ 如何在程序中取得环境变量的内容?
//取得所有的环境变量 - #include <iostream> using namespace std; int main(int argc, char* argv[], char* env[]) { for( int i=0; env[i]; i++ ){ if(i<9) cout << 0; cout<< i+1 <<": " << env[i] << endl; if(i%8==7) cin.get(); } cout << endl; }
在进程中设置的环境变量只在本进程与子进程里使用
因此我们几乎不在程序里修改环境变量.
//得到确定的环境变量 #include <iostream> #include <cstdlib> using namespace std; int main() { char* name = "HOME"; char* value = NULL; value = getenv(name); cout << "value=" << value << endl; } //设置环境变量 #include <iostream> using namespace std; #include <cstdlib> int main() { char* var = "baby=beauty"; char* name="baby"; putenv(var); char* value = getenv(name); cout << "value=" << value << endl; }
* 编程习惯:
1, 向函数传递指针数组的时候,如果没有说明元素个数,总是用一个NULL放在末尾.以
NULL作为结束标志.
2, 返回指针的函数,正常返回一个非空指针,出错返回NULL.
3, 返回整数函数,正常返回一个非负整数(通常是0),出错返回负数(通常是-1)
perror("提示");//显示内容为: 提示:错误信息文字描述
-----------------------------------------------------------
* 用户信息:
设置-用户权限:chmod u+s a.out//把用户ID符加到文件上
//指权限沾符到这个文件上,让使用这个文件的用户都有拥有者一样的权限
XXX_t 表示是一个整数
struct passwd* getpwuid (int userid)//得到一个指向passwd结构的指针,该结构
包括用户相关信息记录.
#include <iostream> using namespace std; #include <pwd.h> int main() { passwd* p = NULL; string name; int uid; cout << "input username or id:"; char ch; ch = cin.peek(); if(ch>='0'&&ch<='9'){ cin >> uid; p = getpwuid(uid); } else{ cin >> name; p = getpwnam(name.c_str()); } if(p==NULL){ cout << "error!" << endl; } else{ cout << p->pw_name << endl; cout << p->pw_uid << endl; cout << p->pw_gid << endl; cout << p->pw_dir << endl; cout << p->pw_shell << endl; } }
---------------------------------------------------------
* 文件系统:
+ 目录
pwd:print working directory
/char* getcwd(char* buf,size_t size);//取得当前工作目录,出错返回NULL // buf是放目录名字符串的地方,一般是一个字符数组名. // size 为了避免越界,会把字符串长度也传过去 // 凡是要自已准备字符数组来保存字符串的时候,也要把长度传过去. // 数组越界访问会导致破坏其它数据或程序崩溃. // 根据返回值判断是否出错 // 函数里有一条语句: return buf; // 因此可以直接 cout << getcwd(buf,256); // getcwd.cc #include <iostream> using namespace std; #include <unistd.h> int main() { char buf[256] = "(unknow)";// 一定要用char数组 cout << getcwd(buf,256) << endl;ssss cout << buf << endl; } DIR* opendir(const char* dirname)//打开目录 /不能定义一个DIR对象,通常也不会定义DIR*类型变量 struct dirent* readdir(DIR* dirp)//读取目录 int closedir(DIR* dirp)//关闭目录流 //dir.cc #include <iostream> using namespace std; #include <dirent.h> #include <sys/types.h> #include <list> #include <string> #include <iterator> #include <algorithm> int main(int argc,char* argv[]) { char* dir = NULL; if(argc==1) dir = "."; else dir = argv[1]; DIR* p = opendir(dir);//.... if(p==NULL){ cout << "not directory or not exitst" << endl; return -1;//.... } list<string> ls; dirent* pd = NULL; while( (pd=readdir(p))){ if(pd->d_name[0]=='.') continue; ls.push_back(pd->d_name); } closedir(p);//..... ls.sort(); //copy(ls.begin(),ls.end(),ostream_iterator<string>(cout,"\n")); list<string>::iterator it; it = ls.begin(); while(it!=ls.end()) cout << *it++ << ' ' << endl; cout << endl; return 0;//.... } //end of main
int stat(const char* path/*文件名*/,stat* buf)函数;//用来取得一个文件的信
息
//stat.cc #include <iostream> using namespace std; #include <sys/stat.h> #include <sys/types.h> #include <fcntl.h> int main(int argc, char* argv[]) { if(argc==1) { cout << "no filename" << endl; return 0; } int res; struct stat s; res = stat(argv[1],&s); if(res <0){ cout << "no file"<<endl; return -1; } cout << s.st_uid <<','<< s.st_size<<endl; if(S_ISDIR(s.st_mode)) cout << "directory" << endl; else cout << "file" << endl; }//end main
int mkdir("新目录名",权限);//创建目录
int rmdir("目录名");//删除目录
getcwd(字符数组名,字符数组长度);//取得当前目录名
chdir("目录名");//设置当前目录名,在执行期间有效,程序结束失效
//目录操作示例 #include <iostream> using namespace std; #include <sys/stat.h> #include <unistd.h> #include <string> int main() { string cmd; string dirname; for(;;){ cout << "cmd:"; cin >> cmd; if(cmd=="mkdir"){ cin >> dirname; mkdir(dirname.c_str(),0777); } else if(cmd=="rmdir"){ cin >> dirname; rmdir(dirname.c_str()); } else if(cmd=="chdir"){ cin >> dirname; chdir(dirname.c_str()); } else if(cmd=="pwd"){ char buf[256]; getcwd(buf,256); cout << buf << endl; } else if(cmd=="bye"){ cout << "C U" << endl; break; } else cout << "unknow command!"<< endl; }// end for }// end main
rename("旧名","新名");//给目录或文件改名.
===================================================
+ 文件的操作 02:03:17
文件权限的差别
int access(const char *path/*文件名*/,int amode)
amode:R_OK,W_OK,X_OK,F_OK(是否存在)
如果有指定权限,返回0.没有返回小于0
if(!access..)
用open()函数打开一个文件
ofstream fout;
fout.open("文件名");
int open(const char* pathname,int oflag,...);
<O_RDONLY|O_WRONLY|O_RDWR>这三个中必选一个,也只能选一个.
O_APPEND O_CREAT O_EXCL 可写可不写.
如果有O_CREAT,要传第三个参数就是创建文件权限,一般是8进制0755或0644
O_CREAT|O_EXCL表示必须创建新文件
返回文件描述符fd
进程使用文件描述符来操作文件.
文件描述符
shell产生三个标准文件描述符
0,1,2对应于cin,cout,cerr
删除文件:
unlink("文件名");//
remove("文件名");//
在UC里都是用文件描述符来描述文件
在对文件读的时候,如果读到的字节数小于要求的字节数,表示读完了
write(fd,内存地址,字节数)//向文件写
读和写都是顺序的.
//文件读写例程 #include <iostream> using namespace std; #include <iostream> #include <fcntl.h> #include <unistd.h> int main() { int fd = open("rw.txt",O_RDWR); if( fd<0 ){ cout << "file not exist"; return -1; } int len; char bu[4]; len = read(fd,bu,4); for( int i=0;i<4;i++) cout << bu[i]; cout << endl; char* str = "xxxx"; write(fd,str,4); close(fd); }
off_t lseek(int fd, off_t offset, int whene);
whene:SEEK_SET SEEK_CUR SEEK_END
对应core C++ 中的fin.seekg(offset);
fout.seekp(offset);
<>,<sys/stat.h>,<dirent.h>//目录操作头文件
//lseek.cc #include <iostream> using namespace std; #include <fcntl.h> //....... #include <unistd.h>//....... int main() { int fd = open("rw.txt",O_RDWR); if( fd<0 ){ cout << "file not exist" << endl; return -1; } char ch; for(int i=0;i<3;i++){ read(fd,&ch,1); cout << ch; lseek(fd,1,SEEK_CUR); } cout << endl; lseek(fd,0,SEEK_SET); char buf[9]; read(fd,buf,8); buf[8] = '\0'; cout << buf << endl; lseek(fd,0,SEEK_END); write(fd,"bye\n",4); close(fd); } //因此我们可以用lseek函数来写一个小型的数据库
发表评论
-
用c++实现二叉树增删改查和快速排序算法
2009-06-02 13:18 2715//快速排序 #include <iostream ... -
快速排序完整示例
2009-06-01 21:04 1131#include <iostream> usin ... -
C++容器与迭代器
2009-06-01 17:55 2071* 容器的迭代器还有几种: + iterator:正常迭 ... -
c++排序算法与模板和STL
2009-05-31 13:32 1896* 冒泡排序 一轮比较所有相邻数据对,如果顺序不合适就交换, ... -
C++算法与二叉树的实现
2009-05-30 18:35 2586* 输出格式控制 + 成员函数:width fill pr ... -
c++链表 异常 内部类 输出格式控制
2009-05-29 21:36 1778C(控制台) F(文件) ------------- ... -
C++之I/O
2009-05-27 21:26 1946* 重载 + 拷贝构造函数A(const A& o ... -
C++拷贝构造函数与运算符重载
2009-05-26 20:32 2520拷贝构造函数与运算符的重载 * 多态 - 前堤:继承,虚函 ... -
C++多态与类型转换
2009-05-25 17:10 1949c++中字符串的处理,用string进行处理,实际上它是一个类 ... -
类的继承
2009-05-24 09:42 10371,如何定义,实现一个类 ... -
面向对象编程
2009-05-23 19:20 760//倒计时 #include <iostr ... -
C++ 面向对象
2009-05-23 15:40 989* 指针简单总结 //接受命令行参数的函数 int main ... -
C与C++中的time相关函数
2009-05-23 14:03 1372本文从介绍基础概念入手,探讨了在C/C++中对日期和时间操作所 ... -
c++指针续
2009-05-23 11:16 1020//常指针,或叫定指针:指 ... -
C++指针
2009-05-22 19:22 1217C++ 里有字符串类型string ,最大可支持1G,可用st ... -
数组本质
2009-05-21 18:52 1263数组是一片连续的内存空间,定义时一般指明大小和类型,这样编译器 ... -
C++用递归解决汉诺塔问题(续)
2009-05-19 12:16 1018#include <iostream.h> ... -
c++ 递归实例二
2009-05-18 22:37 1748#include <iostream.h> ... -
C++用递归解决汉诺塔问题
2009-05-18 21:54 2610递归确实是一个不错的算法,可以将原来很复杂的问题简化.这里要注 ... -
C++ 入门
2009-05-15 21:31 0一次性修改LINUX环境变量:(bash)export $PA ...
相关推荐
Rocky Linux 8.10内核包
内容概要:本文档详细介绍了如何在Simulink中设计一个满足特定规格的音频带ADC(模数转换器)。首先选择了三阶单环多位量化Σ-Δ调制器作为设计方案,因为这种结构能在音频带宽内提供高噪声整形效果,并且多位量化可以降低量化噪声。接着,文档展示了具体的Simulink建模步骤,包括创建模型、添加各个组件如积分器、量化器、DAC反馈以及连接它们。此外,还进行了参数设计与计算,特别是过采样率和信噪比的估算,并引入了动态元件匹配技术来减少DAC的非线性误差。性能验证部分则通过理想和非理想的仿真实验评估了系统的稳定性和各项指标,最终证明所设计的ADC能够达到预期的技术标准。 适用人群:电子工程专业学生、从事数据转换器研究或开发的技术人员。 使用场景及目标:适用于希望深入了解Σ-Δ调制器的工作原理及其在音频带ADC应用中的具体实现方法的人群。目标是掌握如何利用MATLAB/Simulink工具进行复杂电路的设计与仿真。 其他说明:文中提供了详细的Matlab代码片段用于指导读者完成整个设计流程,同时附带了一些辅助函数帮助分析仿真结果。
内容概要:该题库专为研究生入学考试计算机组成原理科目设计,涵盖名校考研真题、经典教材课后习题、章节题库和模拟试题四大核心模块。名校考研真题精选多所知名高校的计算机组成原理科目及计算机联考真题,并提供详尽解析,帮助考生把握考研命题趋势与难度。经典教材课后习题包括白中英《计算机组成原理》(第5版)和唐朔飞《计算机组成原理》(第2版)的全部课后习题解答,这两部教材被众多名校列为考研指定参考书目。章节题库精选代表性考题,注重基础知识与重难点内容,帮助考生全面掌握考试大纲要求的知识点。模拟试题依据历年考研真题命题规律和热门考点,精心编制两套全真模拟试题,并附标准答案,帮助考生检验学习成果,评估应试能力。 适用人群:计划参加研究生入学考试并报考计算机组成原理科目的考生,尤其是需要系统复习和强化训练的学生。 使用场景及目标:①通过研读名校考研真题,考生可以准确把握考研命题趋势与难度,有效评估复习成效;②通过经典教材课后习题的练习,考生可以巩固基础知识,掌握解题技巧;③通过章节题库的系统练习,考生可以全面掌握考试大纲要求的各个知识点,为备考打下坚实基础;④通过模拟试题的测试,考生可以检验学习成果,评估应试能力,为正式考试做好充分准备。 其他说明:该题库不仅提供详细的题目解析,还涵盖了计算机组成原理的各个方面,包括计算机系统概述、数据表示与运算、存储器分层、指令系统、中央处理器、总线系统和输入输出系统等。考生在使用过程中应结合理论学习与实践操作,注重理解与应用,以提高应试能力和专业知识水平。
__UNI__DB9970A__20250328141034.apk.1
rust for minio
国网台区终端最新规范
资源内项目源码是来自个人的毕业设计,代码都测试ok,包含源码、数据集、可视化页面和部署说明,可产生核心指标曲线图、混淆矩阵、F1分数曲线、精确率-召回率曲线、验证集预测结果、标签分布图。都是运行成功后才上传资源,毕设答辩评审绝对信服的保底85分以上,放心下载使用,拿来就能用。包含源码、数据集、可视化页面和部署说明一站式服务,拿来就能用的绝对好资源!!! 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、大作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.txt文件,仅供学习参考, 切勿用于商业用途。
一个简单的机器学习代码示例,使用的是经典的鸢尾花(Iris)数据集,通过 Scikit-learn 库实现了一个简单的分类模型。这个代码可以帮助你入门机器学习中的分类任务。
pyqt离线包,pyqt-tools离线包
资源内项目源码是来自个人的毕业设计,代码都测试ok,包含源码、数据集、可视化页面和部署说明,可产生核心指标曲线图、混淆矩阵、F1分数曲线、精确率-召回率曲线、验证集预测结果、标签分布图。都是运行成功后才上传资源,毕设答辩评审绝对信服的保底85分以上,放心下载使用,拿来就能用。包含源码、数据集、可视化页面和部署说明一站式服务,拿来就能用的绝对好资源!!! 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、大作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.txt文件,仅供学习参考, 切勿用于商业用途。
SQL常用日期和时间函数整理及在sqlserver测试示例 主要包括 1.查询当前日期GETDATE 2.日期时间加减函数DATEADD 3 返回两个日期中指定的日期部分之间的差值DATEDIFF 4.日期格式转换CONVERT(VARCHAR(10),GETDATE(),120) 5.返回指定日期的年份数值 6.返回指定日期的月份数值 7.返回指定日期的天数数值
GSDML-V2.3-Turck-BL20_E_GW_EN-20160524-010300.xml
T_CPCIF 0225-2022 多聚甲醛.docx
《基于YOLOv8的智能仓储货物堆码倾斜预警系统》(包含源码、可视化界面、完整数据集、部署教程)简单部署即可运行。功能完善、操作简单,适合毕设或课程设计
蚕豆脱壳机设计.zip
台区终端电科院送检文档
Y6一39一No23.6D离心通风机 CAD().zip
django自建博客app
台区终端电科院送检文档
非开挖水平定向钻机动力头装置设计.zip