草庐IT

FCGX_FPrintF

全部标签

c++ - 为什么我使用 fprintf 在此 C 代码中收到警告?

fprintf(pFile,msg.c_str());为什么我在Xcode中收到警告:Formatstringisnotastringliteral(potentiallyinsecure)我假设我收到此警告是为了防止攻击,因为msg包含诸如%s之类的东西,它将堆栈流式传输到屏幕,直到它到达null终止。在这种情况下,有什么安全的方法可以使用fprintf吗? 最佳答案 你可以给一个格式字符串,fprintf(pFile,"%s",msg.c_str());或者使用fputs,fputs(msg.c_str(),pFile);

c++ - 错误 LNK2001 __imp_fprintf Visual Studio 2015 RC

由于许可证过期,我最近被迫从VisualStudio2015Pre-Release升级到VisualStudio2015ReleaseCandidate。我的项目以前构建良好,但现在却不是。我只收到两个链接错误,过去两天我一直在尝试解决这些错误:1>SDL2main.lib(SDL_windows_main.obj):errorLNK2001:unresolvedexternalsymbol__imp_fprintf1>SDL2main.lib(SDL_windows_main.obj):errorLNK2001:unresolvedexternalsymbol__imp___iob_

c++ - fprintf 与 std::ofstream 的非常令人惊讶的性能(fprintf 非常慢)

我正在运行一些基准测试以找到用C++将巨大数组写入文件的最有效方法(在ASCII中超过1Go)。所以我将std::ofstream与fprintf进行了比较(参见下面我使用的开关)case0:{std::ofstreamout(title,std::ios::out|std::ios::trunc);if(out){ok=true;for(i=0;i我的大问题是fprintf似乎比std::ofstream慢12倍以上。您知道我的代码中问题的根源是什么吗?或者std::ofstream与fprintf相比可能优化得非常好?(还有一个问题:你知道另一种更快的写入文件的方法吗)非常感谢(详

c++ - 如何使用 fprintf/printf 打印破折号或点?

截至目前,我正在使用下面的行打印不带点的fprintf(stdout,"%-40s[%d]",tag,data);我希望输出如下所示,Numberofcards..................................[500]Fixedprizeamount[inwholedollars]............[10]Isthisahighwinnerprize?.....................[yes]如何使用fprintf/printf打印出破折号或点号? 最佳答案 更快的方法:如果你需要的最大填充量是事

c - fprintf() 线程安全吗?

我正在为野蛮人就餐问题的某些变量编写C解决方案。现在,我创建线程,每个线程都将FILE*获取到同一个调试文件;在线程内,我正在使用fprintf()进行一些打印。打印的语句不受任何类型的互斥锁等保护。我没有在调试文件中观察到任何交错行为;它似乎是线程安全的,尽管我在网上无处可寻,但我发现确实如此。我确实看到了以下内容:在Unix中,fprintf是线程安全的使用c++11编译器,fprintf需要是线程安全的我问这个问题的原因是因为这是一项有效的大学作业,但我仍然怀疑在另一台基于Windows的计算机上,由于上​​述不确定性,该程序可能会导致问题。我将附上线程代码,以便您看到打印未pr

c++ - Windows C++ : How can I redirect stderr for calls to fprintf?

我正在将来自BSD项目的现有C++代码包装在我们自己的自定义包装器中,我想将它集成到我们的代码中,并尽可能减少更改。此代码使用fprintf打印到stderr以记录/报告错误。我想将其重定向到同一进程中的另一个位置。在Unix上,我使用socketpair和thread完成了此操作:套接字的一端是我发送stderr(通过调用dup2),另一端在一个线程中被监控,然后我可以在其中处理输出。这在Windows上不起作用,因为套接字与文件句柄不同。我在网上找到的所有文档都显示了如何重定向子进程的输出,这不是我想要的。如何在写入输出时在同一进程中重定向stderr以获得某种回调?(在你这么说之

go - 为什么编译器在这个实例中提示一个未使用的变量(当它被 fmt.Fprintf 使用时)?

我有一段简单的代码,我想将slice的元素转换为json,然后将它们打印到我的http.responseWriter。for_,element:=rangecustomers{result,_:=json.Marshal(element)fmt.Fprintf(w,string(result))}然而,当我编译它时,我收到错误“resultdeclaredandnotused”。如果我添加一个简单的行:_=result然后一切都可以编译并正常工作。为什么编译器会提示这种用法,在go中正确的做法是什么?感谢任何见解,到目前为止,我的搜索似乎表明对Fprintf的调用应该算作一次使用。

c - fclose()、fprintf()、ftell() thread_safe 是否仅就每个函数本身而言?

Glibc说fclose()/fopen()/fprintf()/ftell()是线程安全的。但是当一个线程正在写入或读取文件而另一个线程正在关闭文件时会发生什么?假设我有一个看起来像这样的函数FILE*f;//fisopenedwhenprogramstartsintlog(char*str){fprintf(f,"%s",str);if(ftell(f)>SIZE_LIMIT){pthread_mutex_lock(&mutex);if(ftell(f)>SIZE_LIMIT){fclose(f);rename(OLD_PATH,NEW_PATH);f=open(OLD_PATH,

c - fprintf,错误 : format not a string literal and no format arguments [-Werror=format-security

当我尝试在Ubuntu上编译fprintf(stderr,Usage)时,我遇到了这个错误:error:formatnotastringliteralandnoformatarguments[-Werror=format-security但是当我在其他linux发行版(RedHat、Fedora、SUSE)上编译时编译成功。有人有想法吗? 最佳答案 你应该使用fputs(Usage,stderr);如果您不进行格式化,则无需使用fprintf。如果要使用fprintf,请使用fprintf(stderr,"%s",Usage);de

c++ - 未解析的外部符号 __imp__fprintf 和 __imp____iob_func,SDL2

谁能解释一下__imp__fprintf和__imp____iob_funcUnresolvedexternal手段?因为我在尝试编译时遇到这些错误:1>SDL2main.lib(SDL_windows_main.obj):errorLNK2019:unresolvedexternalsymbol__imp__fprintfreferencedinfunction_ShowError1>SDL2main.lib(SDL_windows_main.obj):errorLNK2019:unresolvedexternalsymbol__imp____iob_funcreferencedin