草庐IT

C fopen() - 绝对路径可能存在的问题

这个问题在这里已经有了答案:Returningastringfromfunction(3个答案)关闭7年前。我目前在Windows10下使用Code::Blocks13.12(编译器:GNUGCC)。我正在尝试打开文件并加载其内容,但fopen给我带来了麻烦。'input.txt'与我的可执行文件位于同一目录中。我已经检查了权限。获取路径的函数:char*getFileName(){char*fileName;/*thepathofthe.txtfile*/charpath[MAX_PATH];/*getthepathoftheexecutable*/GetModuleFileName

c - Windows 互斥对象和信号量

关闭。这个问题需要detailsorclarity.它目前不接受答案。想改进这个问题吗?通过editingthispost添加细节并澄清问题.关闭6年前。ImprovethisquestionWindows互斥对象是否可以替换为二进制信号量,或者Windows互斥对象是否具有我错过的某些特定功能?

在 Linux 上使用 MinGW 为 Windows 编译 Gnu11

我有一个C程序;它使用gcc-std=gnu11iter.c-oiter进行编译和链接,因为我正在使用一些GNUstring.h扩展,例如strndup,strnlen和strsep。我想在UbuntuLinux上使用包i686-w64-mingw32-gcc为Windows编译这个程序。$i686-w64-mingw32-gcc-std=gnu11iter.c-oiter32.exeInfileincludedfromiter.c:1:0:iter.h:Infunction‘str_chomp’:iter.h:166:15:warning:implicitdeclarationoff

c - 在不离开内核空间的情况下实现 "tee"

在Linux中,tee命令将数据从stdin复制到stdout和文件;通过利用tee和splice系统调用,可以在数据永远不会离开内核空间的情况下实现此功能。在Windows上实现tee命令并且数据永远不会离开内核空间需要哪些函数?虽然tee命令有一个简单的实现,包括read、open和write将数据复制到用户空间,我特别感兴趣的是学习如何在数据不离开内核空间的情况下分割文件流。 最佳答案 这个问题的前提是错误的。tee命令不依赖于tee()或splice()系统调用,也不是零拷贝;它基本上实现为:openfileforwriti

c - 从 C 打开/运行另一个程序,然后关闭该程序

关闭。这个问题需要更多focused.它目前不接受答案。想改进这个问题吗?更新问题,使其只关注一个问题editingthispost.关闭6年前。Improvethisquestion如何从C执行/打开/运行另一个程序,而不是阻止它,但让它同时运行。然后我想做一些像服务器/客户端这样的测试,然后如果已经完成我只想杀死/关闭这个程序。我读过system()orexecv()但第一个似乎在等待结果,第二个似乎只能在Linux上工作?在最好的情况下,我希望有跨平台或最小的MacOS/Windows/Linux(Ubuntu)工作解决方案。当我不再需要它时,我还需要关闭这个以前打开的程序。

c++ - 从 Matlab 运行 exe 代码。在 cmd (dos) 中工作的完全相同的指令在 Matlab 中失败

这让我发疯,我必须承认。在终于能够成功编译我需要处理语音文件的两个函数之后,从我从一个值得信赖的在线存储库下载的C/C++代码(代码已经在Linux中经过彻底测试),我现在正在努力从Matlab启动这些文件...当我在cmd(dos)中键入以下命令时分析b2.wavconfig_default它有效,没问题(参见此处Works)。然后,我将完全相同的命令构建到一个字符串中,并将其提供给“系统”Matlab函数。然后代码崩溃了...(请参阅此处Fails)我已经尝试使用完整路径(c:\b2.wav等)但仍然无法正常工作...关于为什么会发生这种情况有什么想法吗?

c - 如何使这个 1996 年的 makefile 起作用?

这是1996年旧GSM标准的make文件。我需要让它在运行OSX10.11.6的MacBook或Windows7的大学计算机上运行。Windows没有安装nmake在谷歌搜索之后,这个问题似乎是一个解决方案。有没有办法绕过makefile的使用?此外,将CDIR和UTILSDIR更改为完整路径在我的Mac上还不够。make-fmakefile.mak仍然返回TCC-A-I/Users/Henrik/Desktop/GSMHR2/DISK/c-Fc-ml-c/Users/Henrik/Desktop/GSMHR2/DISK/c/gsm_hr.cmake:TCC:Nosuchfileord

c - 为什么使用 fscanf 会导致应用程序崩溃?

C编程新手。以下代码部分试图从文本文件(utf-8)中读取制表符分隔的MD5列表(32个字符)和相应的描述(最多128个字符),但导致应用程序崩溃:HANDLEhFile=CreateFileW(good_path,GENERIC_READ,FILE_SHARE_READ,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL|FILE_FLAG_OVERLAPPED,NULL);if(hFile==INVALID_HANDLE_VALUE){returnFALSE;}LPWSTRmd5=malloc(sizeof(wchar_t)*32);LPWSTRdes

c++ - 如何判断 stderr 是否已在 Windows 中重定向?

我希望我的程序在stderr连接到控制台时和重定向到文件/管道时具有不同的行为。在Unix系统中,我可以只测试isatty(STDERR_FILENO),但我如何在Windows中执行此操作?MSVCRT也有一个名为_isatty的函数,它不能正常运行(例如DetectNULfiledescriptor(isattyisbogus))。我可以调用任何Windows或NTAPI来测试它吗? 最佳答案 调用GetStdHandle获取标准错误句柄。将该句柄传递给GetFileType以找出它是什么类型的文件。如果返回FILE_TYPE_

c - Malloc 是否分配了比需要的更多的内存?

这是学校的C作业,但我遇到了一些奇怪的事情,我不知道它是否正常。我必须接受命令行参数,一个例子是-ia.b所以在我的程序中,我使用malloc动态分配内存char*fileName=NULL;fileName=malloc(strlen(argv[i])*sizeof(char));//errortestingetcstrcpy(fileName,argv[i]);工作正常,但我通过visualstudio调试器查看内存,这是在内存位置分配的内存位置,对我来说,它需要的空间更大:0x01608b98"ÍÍÍÍÍýýýýB`\x1˜?`\x1\xf1¼O{º"如果我像这样转换malloc