小编Sha*_*ang的帖子

printf中的"%.*s"是什么意思?

我有一个代码片段,其中有一个

printf("%.*s\n")
Run Code Online (Sandbox Code Playgroud)

什么%.*s意思?

c printf format-specifiers

98
推荐指数
4
解决办法
7万
查看次数

fopen中r和rb之间的区别是什么?

我尝试在C中使用fopen,第二个参数是打开模式.两种模式"r"和"rb"往往让我很困惑.看来它们是一样的.但有时候使用"rb"会更好.那么,为什么"r"存在?请向我详细解释或通过示例解释.谢谢.

c linux windows file

58
推荐指数
4
解决办法
12万
查看次数

哪个更快,将原始数据写入驱动器或写入文件?

我需要将数据写入驱动器.我有两个选择:

  1. 写原始扇区.(_ write(handle,pBuffer,size);)
  2. 写入文件(fwrite(pBuffer,size,count,pFile);)

哪种方式更快?

我期望原始扇区写入函数_write更有效.但是,我的测试结果失败了!fwrite更快._write成本较长.

我贴了我的片段; 也许我的代码是错的.你能帮我吗?无论哪种方式都可以,但我认为原始写入更好,因为看起来驱动器中的数据至少是加密的....

#define SSD_SECTOR_SIZE 512
int g_pSddDevHandle = _open("\\\\.\\G:",_O_RDWR | _O_BINARY, _S_IREAD | _S_IWRITE);
TIMER_START();
while (ulMovePointer < 1024 * 1024 * 1024)
{
    _write(g_pSddDevHandle,szMemZero,SSD_SECTOR_SIZE);
    ulMovePointer += SSD_SECTOR_SIZE;
}
TIMER_END();
TIMER_PRINT();
FILE * file = fopen("f:\\test.tmp","a+");
TIMER_START();
while (ulMovePointer < 1024 * 1024 * 1024)
{
    fwrite(szMemZero,SSD_SECTOR_SIZE,1,file);
    ulMovePointer += SSD_SECTOR_SIZE;
}
TIMER_END();
TIMER_PRINT();
Run Code Online (Sandbox Code Playgroud)

c c++ windows

9
推荐指数
2
解决办法
1525
查看次数

mmap如何工作?

我正在研究Linux中需要来自硬盘的mmap文件的程序,但我有一个问题,是什么能使它失败.就像所有的内存都碎片化,每个只有200M,但我想将文件mmap到1000M的内存,它会成功吗?

还有一个问题,Linux中是否有任何工具可以像Windows中的某些工具一样重新收集内存,例如xp的内置工具.

谢谢.

linux memory malloc mmap

9
推荐指数
2
解决办法
1万
查看次数


如何以编程方式确定驱动器的空间/大小?在 Linux 和 Windows 上

那就是:如何检查未格式化的驱动器大小...不要考虑格式化的驱动器...只是未格式化的驱动器。

c linux windows diskspace

5
推荐指数
1
解决办法
8908
查看次数

如何在清漆中获取请求正文

我目前正在做一个基于清漆的项目。

我们写vcl和vmod。但是项目需要检查请求体。如何获取帖子请求正文VCL或vmod使用C function?

varnish varnish-vcl

5
推荐指数
2
解决办法
2023
查看次数

可以CreateFile()在两个不同的线程中同时打开一个文件

可以CreateFile()在两个不同的线程中同时打开一个文件


void new_function(void * what) {

HANDLE h = CreateFile("c:\\tmp", GENERIC_ALL,FILE_SHARE_WRITE | 
                  FILE_SHARE_READ , NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);

if (h == INVALID_HANDLE_VALUE)
{
    DWORD d = GetLastError();
    return ;
}
Sleep(10000);
Run Code Online (Sandbox Code Playgroud)

}

int main() {

HANDLE h = CreateFile("c:\\tmp", GENERIC_ALL,FILE_SHARE_WRITE | FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);

Sleep(10000);
return 1;
Run Code Online (Sandbox Code Playgroud)

}


每次它退出该GetLastError位置.并且错误是ERROR_SHARING_VIOLATION(32,"进程无法访问该文件,因为它正由另一个进程使用.")

如果我canot共享打开文件,那么有什么用 FILE_SHARE_WRITE | FILE_SHARE_READ

感谢名单

The program environment is Win32 Vs2003

c winapi createfile

4
推荐指数
1
解决办法
6964
查看次数

我如何知道内存段的所有零点

我的意思是,我malloc一段内存,也许1k可能是20bytes ...假设指针是pMem 如何知道所pMem提到的内容是全部Zero或\0 .我知道,memcmp但第二个参数应该是另一个内存地址... thanx

c c++ linux memory windows

4
推荐指数
5
解决办法
2028
查看次数

我如何在django中获取在php中创建的会话?

它不是跨域的.我的网站由php和django组成,我在php中编写会话,但我想在django中读取它,我该怎么做?

php django session

3
推荐指数
1
解决办法
1273
查看次数