stdio相关内容

从文件中确定(打开)​​文件名*

给定一个标准输入输出 FILE * 指针,有没有通过,我可以发现名称的方法(打开)文件? 解决方案 看起来(从的这里),关于POSIX系统,你可以使用的fileno()来从一个FILE *的文件描述符,然后用FSTAT摆脱文件描述符的统计信息。 stat结构包含设备号和inode号。您可以检查文件系统的匹配索引节点哪些文件。这显然​​需要一定的时间进行全面的东西的文件系统。 究其原因,这 ..
发布时间:2016-08-22 15:02:41 C/C++

函数getline通过套接字

有没有libc的函数,会做同样的事情函数getline,而是将与所连接的插座,而不是一个FILE *流工作? 一个解决方法是调用fdopen套接字。什么是应该这样做时,应考虑的,关心的事情。是什么原因做/不这样做。 一个显而易见的理由这样做是调用函数getline和合作,但也许这是一个更好的主意来重写一些自定义的函数getline? 解决方案 当您调用读取插座上,那么它可以pmatur ..
发布时间:2016-08-22 14:38:48 C/C++

用C检测EOF

我使用下面的C code,直到EOF时所采取的从用户的输入,但问题是这样的code未工作时,先取后输入终止。谁能告诉我什么是错这个code。先谢谢了。 浮动输入;的printf(“输入号码:”); scanf函数(“%F”,&安培;输入);而(!EOF) { 的printf(“输出:%F”,输入); 的printf(“输入号码:”); scanf函数(“%F”,&安培;输 ..
发布时间:2016-08-21 22:11:11 C/C++

查找文件的由fmemopen创建的尺寸

我用 fmemopen 来创建一个变量 FILE * FID 将它传递给一个函数读取数据从打开的文件。 某处在该函数它使用以下code键找出文件的大小 fseek的(FID,0,SEEK_END); FILE_SIZE = FTELL(FID); 这工作得很好普通文件的情况下,但在按 fmemopen 创建的文件ID的情况下,我总是得到 FILE_SIZE = 8192 任何想法,为 ..
发布时间:2016-08-21 21:42:33 服务器开发

将简单的C程序到服务器使用的netcat

的netcat 的一个很酷的功能是如何可以将任何命令行程序到服务器。例如,在Unix系统中,我们可以通过将日期做一个简单的日期服务器二进制的netcat ,以便它的标准输出通过套接字发送: 的netcat -l -p 2020年-e日期 然后我们就可以通过简单地发出命令来调用从另一台机器该服务:的netcat< IP-地址> 2020年 即使是一个外壳可以连接( / bin ..
发布时间:2016-08-21 21:30:58 服务器开发

再阅读()制作与fgets的问题要求在Linux上

我在读比较大的线路使用文本(最多128K)与fgets 。我看到过多的上下文切换的服务器上,使用 strace的我看到以下内容: 阅读(3,“9005 10218 00840023102015 201008”......,4096)= 4096 即。 与fgets 一次读取的4096字节块。有什么办法来控制大块与fgets 采用调用时,阅读()? 解决方案 setvbuf用来将是明显 ..
发布时间:2016-08-21 21:25:08 服务器开发

锵错误 - stddef找不到文件?

升级到Ubuntu 13.10“莽撞”之后,现在锵给我的错误信息: 铛-Wall -std -Werror C99 = -ggdb -O0 5.1.c -o 5.1 1:在文件从5.1.c包括: /usr/include/stdio.h:33:11:致命错误:未找到'STDDEF.H'文件 #包括LT&;&STDDEF.H GT; ^ 产生1个错误。 使:*** [5.1]错 ..
发布时间:2016-08-21 21:12:16 服务器开发

从标准输入写入读取C到stdout

我试图写一个猫克隆锻炼C,我有这样的code: 的#include<&stdio.h中GT; #定义BLOCK_SIZE 512 INT主(INT ARGC,为const char * argv的[]) { 如果(ARGC == 1){//拷贝标准输入到标准输出 字符缓冲区[BLOCK_SIZE] 而(!的feof(标准输入)){ ..
发布时间:2016-08-19 16:32:14 C/C++

C温度转换程序保持输出0华氏摄氏

用C我的温度转换程序保持输出0,当我试图把华氏转换为摄氏温度。摄氏度到华氏度转换似乎工作就好了。我也做了同样的事情为功能和部分,但我一直在第二次转换得到0。是否有人可以帮助我,或告诉我什么,我做错了什么? 的#include<&stdio.h中GT;//函数声明浮get_Celsius(浮点*摄氏度); //获取要转换的摄氏温度值。 无效to_Fahrenheit(浮点CEL); //摄氏 ..
发布时间:2016-08-19 15:08:19 C/C++

是什么类型的文件对象的属性

文件对象通常是由创建 打电话要么FOPEN或TMPFILE,这 既是一个参考返回之一 这些对象。 什么是结构体命名文件的属性,或者是与平台相关的? 解决方案 答案是它依赖于平台。至少在Linux上使用的glibc,文件其实从 _IO_FILE 的typedef这是在 libio.h : 结构_IO_FILE { INT _flags; / *高位字是_IO_MAGIC;剩 ..
发布时间:2016-08-19 14:23:20 C/C++

printf的不打印到屏幕

如果我尝试在Windows 7上运行在Cygwin下下面的简单code, 的#include<&stdio.h中GT; 诠释主(){ INT I1,I2,款项;的printf(“请输入第一个整​​数\\ n”); scanf函数(“%d个”,&安培; I1);的printf(“请输入第二个整数\\ n”); scanf函数(“%d个”,&安培; I2);总和= I1 + I2; 的prin ..
发布时间:2016-08-19 14:04:01 C/C++

阅读与未知大小的文件内容

我想处理一个配置文件的内容。该配置文件可以是任何大小。我得到一个总线错误,程序挂起后,当我运行下面的code: FILE * FP; struct stat中ST; 字符*缓冲区;FP = FOPEN(CONFIG_FILE,“R”); 如果(FP == NULL){ //错误处理和清理不再赘述 }FSTAT(的fileno(FP),放大器; ST); FREAD(缓冲区的sizeof ..
发布时间:2016-08-19 14:02:42 C/C++

FTELL在过去2GB的位置

在32位系统中,什么是 FTELL 回报,如果以二进制模式打开一个文件的当前位置指示器是过去2GB的意义呢?在 C99 标准,是这种的未定义行为的,因为 FTELL 必须返回一个长整型(最大值为 2 ** 31-1 )? 解决方案上长整型 长整型应该是至少有32位,但C99标准没有限制到32位。 C99标准确实提供了便利类型,如 int16_t &安培; int32_t 等映射到正确 ..
发布时间:2016-08-19 13:54:08 C/C++

如何读取一个字符串从\\ n分隔的文件

我想读一回分隔的文件。全短语。 我试图把每个短语转换成字符串。 问题是,当我尝试读取文件 的fscanf(文件,“50年代%的\\ n”,字符串); 该字符串只包含一个字。当它用空格颠簸它停止读取字符串 解决方案 的fscanf可以修改为过去的空间。细节是有点复杂。下面是手册页说,关于什么样%[...] 匹配的非空子序列 从指定的一组字符 接受的字符;接下来的指针 ..
发布时间:2016-08-19 13:38:56 C/C++

与ungetc:一些推回的字节

与ungetc只保证采取推回的一个字节。在另一方面,我测试过它在Windows和Linux,它似乎有两个字节来工作。 是否有关于它实际上只占用一个字节的平台(例如任何当前的Unix系统)? 解决方案 C99标准(而在这之前的C89标准)毫不含糊地说: 推回一个字符的保证。如果与ungetc 函数被调用太多 在同流次无上插入读取或文件定位操作 流,该操作可能会失败。 所以, ..
发布时间:2016-08-19 00:17:19 服务器开发

是在接近标准输入/ FCLOSE保证是正确的?

这好像下面的调用做你所期望(关闭流,不允许任何进一步的输入 - 任何等待的流将返回错误输入),但是它保证在所有的编译器/平台正确? 关闭(的fileno(标准输入)); FCLOSE(标准输入); 解决方案 没有什么是保证跨每一个可能的操作系统是正确的。但是,调用FCLOSE(标准输入)将任何POSIX兼容的操作系统上工作,以及Windows操作系统,所以你应该打在目前普遍使用prett ..
发布时间:2016-08-18 23:39:01 C/C++

等价的C自动冲洗的(标准输出刷新每次写入之后)?

在Perl中,我可以输入: $ | ++; 和任何打印到stdout会自动fflush()的。 有没有用C等效?换句话说,有没有一些方法,我可以告诉标准输入输出,自动fflush每次的printf(标准输出后),它的方式自动冲洗标准错误? 解决方案 尝试 setvbuf用来(标准输出,NULL,_IONBF,0)。它改变了标准输出来缓冲( _IONBF )模式。 ..
发布时间:2016-08-18 23:13:09 C/C++

哪些呢的#include<&stdio.h中GT;真正做到在C程序

我在C编程一个新的学生,我是编码一些简单的程序“Hello World”的风格。 在所有这些节目我把#包括LT&;&stdio.h中GT; 在顶部,但我不知道这是什么意思完全一样。我GOOGLE了它,我发现stdio.h中是具有命令为preprocessor一个文件,但什么是preprocessor?我想,当我写code,我编译它和我的code转变为一种形式,“电脑”可以读,然后我可以运行它。有 ..
发布时间:2016-08-18 22:52:49 C/C++

什么是从标准输入输出文件写入功能处理返回值一个良好的编程模式

我工作的一些code,产生了大量的 忽略'为size_t fwrite的(常量无效*,为size_t,为size_t,FILE *)“,和属性warn_unused_result声明的返回值 警告当G ++编译,我想了解一下最好的编程模式实际记录和处理大量的独立顺序的 FWRITE S的返回值(也就是不一样的 FWRITE 在一个循环中) 让我们说,code看起来像这样的时刻: FWRIT ..
发布时间:2016-08-18 22:43:20 C/C++