草庐IT

system-rules

全部标签

C++ FileIO Copy -VS- System("cp file1.x file2.x)

编写文件复制例程会更快/更高效,还是我应该只执行对cp的系统调用?(文件系统可能不同[nfs、local、reiser等],但它总是在CentOSlinux系统上) 最佳答案 Invoking一个shell通过使用system()函数效率不高,也不是很安全。在Linux中复制文件最有效的方法是使用sendfile()系统调用。在Windows上,CopyFile()应使用API函数或其相关变体之一。Example使用sendfile:#include#include#include#include#include#include#i

c++ - 如何将 std::system_error 与 GetLastError 一起使用?

如果我调用通过GetLastError报告错误的Win32函数,例如RegisterClassEx,如何为该错误抛出std::system_error? 最佳答案 检查GetLastError()的值,如DWORDdwErrVal=GetLastError();std::error_codeec(dwErrVal,std::system_category());throwstd::system_error(ec,"Exceptionoccurred");见here对于error_code和here对于std::system_erro

c++ - system ("command") 产生错误;但它在直接从 Bash 提示符调用时有效

我正在尝试从我的C++程序运行以下bash命令:diff使用以下C++语句:system("diff该命令在直接从Linuxshell运行时运行良好,但从我的程序运行时,我得到:sh:1:Syntaxerror:"("unexpected指的是(我尝试使用\转义(,但这会产生更多问题:system("diff我只想从我的C++程序中运行以下命令:diff我可以创建一个文件并运行它,但我将其作为最后一个选项。 最佳答案 如前所述system()创建一个新的标准外壳sh并执行命令。从是一个bash特有的特性,它不能被sh解释。.您可以通

当两个不同的参数中有空格时,C++ system() 不起作用

我正在尝试使用system()运行需要一些参数的.exe。如果.exe的路径和传入参数的文件路径中有空格,我会收到以下错误:Thefilename,directoryname,orvolumelabelsyntaxisincorrect.这是产生该错误的代码:#include#includeintmain(){system("\"C:\\Users\\Adam\\Desktop\\pdftotext\"-layout\"C:\\Users\\Adam\\Desktop\\week4.pdf\"");_getch();}如果“pdftotext”的路径不使用引号(我需要它们,因为有时目录

c++ - 到 system() 还是 fork()/exec()?

似乎有两种在unix中从C运行外部可执行文件的常用方法,system()打电话和pid=fork()switch(pid)//switchstatementbasedonreturnvalueofpid,//onebranchofwhichwillincludeandexec()command在功能相同的情况下(父进程等待子进程完成,子进程没有返回复杂信息),是否有任何理由更喜欢fork/exec而不是系统? 最佳答案 system执行命令解释器,即shell,它(a)比直接fork/exec慢,(b)在不同系统上可能表现不同,(c

c++ - C+ +'s Strict Aliasing Rule - Is the ' char' 别名豁免一条 2 路街道?

就在几周前,我了解到C++标准有一个严格的别名规则。基本上,我问了一个关于移位的问题——而不是一次移位一个字节,为了最大限度地提高性能,我想用(分别为32或64位)加载处理器的native寄存器并执行4/8的移位字节全部在一条指令中。这是我想避免的代码:unsignedcharbuffer[]={0xab,0xcd,0xef,0x46};for(inti=0;i>4);}buffer[3]相反,我想使用类似的东西:unsignedcharbuffer[]={0xab,0xcd,0xef,0x46};unsignedint*p=(unsignedint*)buffer;//unsigne

c++ - Visual Studio 2015 社区 - 'Visual C++ Project System Package' 错误

所以,这个问题我已经有一段时间了。当我尝试打开我的任何项目时,经常会收到以下错误:---------------------------MicrosoftVisualStudio---------------------------The'VisualC++ProjectSystemPackage'packagedidnotloadcorrectly.Theproblemmayhavebeencausedbyaconfigurationchangeorbytheinstallationofanotherextension.Youcangetmoreinformationbyexamin

c++ - 如何正确使用 system() 在 C++ 中执行命令?

我是Windows下的C++编程新手。我正在尝试使用system()函数在C++代码中执行命令说cuobjdump:system("C:\\programfiles\\nvidiagpucomputing...\\cuobjdump.exe--dump-cubinC:\\..\\input.exe");输出:Usage:cuobjdump[options]接下来是cuobjdump的选项列表。当我执行这个程序时,我总是得到命令行中显示的cuobjdump帮助选项。就好像系统调用不解析文件名一样。我究竟做错了什么?我在使用createprocess时得到了相同的结果。选项--dump-c

c++ - C++ 中的 "As a rule of thumb, make all your methods virtual"- 合理的建议?

我只是偶然看到了标题中的陈述。完整的报价是:Asaruleofthumb,makeallyourmethodsvirtual(includingthedestructor,butnotconstructors)toavoidproblemsassociatedwithomissionofthevirtualkeyword.我在Wrox的书ProfessionalC++中找到了这个。Youcangoogleittocheck.这有什么关系吗?我原以为您只会提供选择的扩展点,而不是默认的可扩展性。例如,a2001articlebyHerbSuttersaysso.从那以后,有什么发生了巨大

c++ - 使 : implicit rule to link c++ project

我正在学习制作教程。我正在尝试构建的非常简单的测试项目只有3个文件:./src/main.cpp./src/implementation.cpp和./include/header.hpp这是制作文件。VPATH=srcincludeCPPFLAGS=-Iincludemain:main.oimplementation.omain.o:header.hppimplementation.o:header.hpp在不带任何参数的情况下调用ma​​ke仅构建目标文件,但不链接可执行文件。prog应该有一个隐含的规则,或者我错过了什么?我真的需要有人为我指明正确的方向。谢谢。我使第一个目标名称与