标签: fwrite

使用fread/fwrite在C中读取和写入文件的结构

我有以下结构:

typedef struct {
  char last[NAMESIZE];
  char first[NAMESIZE];
} name;

typedef struct {
  int id;
  name name;
  float score;
} record;

typedef struct {
  record *data;
  size_t nalloc;
  size_t nused;
} record_list;
Run Code Online (Sandbox Code Playgroud)

我试图使用此函数从文件中读取记录:

int file_read(record_list *list, record* rec)
{
  /* irrelevant code eliminated */

  while(fread(&records, sizeof(record), 1, fp))
  {
    *rec = records;
    valid_list_insert = list_insert(list, rec);
    if(!valid_list_insert)
    {
      return 0;
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

我正在尝试使用此函数将record_list写入文件:

int file_write(record_list* list)
{
  /* irrelevant code eliminated */

  if(fwrite(&list, sizeof(record_list), 1, fp) == 0)
  { …
Run Code Online (Sandbox Code Playgroud)

c struct structure fwrite fread

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

PHP'fwrite'不会变量

我正在创建一个IRC bot,我想将一些函数存储在不同的文件中.我在我的主文件中引用该文件include()并且它可以工作,但是当我尝试给出fwrite()一个这样的变量时:

$data ="THIS IS DATA\r\n";
fwrite($sock, $data);
Run Code Online (Sandbox Code Playgroud)

它抛出此错误:

PHP警告:feof()期望参数1为资源,在第18行的/home/kinz/Desktop/Eve/Eve.php中给出null

PHP警告:fgets()期望参数1是资源,在/home/kinz/Desktop/Eve/Eve.php中给出null

但是当我把:

fwrite($sock, "THIS IS DATA\r\n");
Run Code Online (Sandbox Code Playgroud)

它工作得很好.这是我的完整代码:

function connect_s ($serv, $port, $nick) { $sock = fsockopen($serv, $port); fwrite($sock, "USER $nick $nick $nick :$nick\r\n"); fwrite($socket, "NICK $nick\r\n"); }
function write_d ($data) { fwrite($sock, $data); }
function join_c ($chan) { write_d("JOIN $chan\r\n"); }
function get_in ($in) { for ($i = 3; $i <= count($in); $i++) { $out .= " $in[$i]"; } return trim("$out\r\n"); }
function change_n ($nick) { …
Run Code Online (Sandbox Code Playgroud)

php fwrite

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

用标准库写入文件

我从未在将数据写入文件方面遇到太多麻烦!我正在从MinGW运行GCC,因为我习惯在Linux中使用GCC.我通常使用Linux系统调用open(),write()和read(),但我现在正在编写一个Windows程序,而我在Windows中使用read()/ write()时遇到了麻烦,所以我只是在使用标准库.无论如何,我遇到的问题是我不知道如何写入文件!我已经定义了"FILE*"变量,使用fopen(),"r + b","wb"和"w + b",但我仍然无法用fwrite()或fprintf()写入输出文件.我不知道我甚至做错了什么!这是我的来源:

#include <limits.h>
#include <math.h>
#include <stdio.h>
#include <stdlib.h>
#include <strings.h>

#define DEBUG   1

/*** Global functions ***/
double  highfreq(double deg);

/*** Global variables ***/
double  sin_now;

unsigned int    *ptr;
unsigned char   *key,   *infilename,    *outfilename;
FILE    *infile,    *outfile,   *keyfile;

const char  *pipe_name="[pipe]";

int main(int argc, char *argv[]) {
    unsigned int    x,  y,  z;

    if(argc!=3) {
        fprintf(stderr, "Syntax error: %s <infile.txt> <outfile.wav>", argv[0]);
        return 1;
    }
    if(argv[1][0]=='-') {
        infile=stdin;
        infilename=(unsigned char *)pipe_name;
    }
    else {
        infilename=argv[1]; …
Run Code Online (Sandbox Code Playgroud)

c printf fopen fwrite fread

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

PHP fwrite()不起作用

我在php中编写一个函数,客户端我有一个画布图像,我使用toDataUrl()和文件名将图像保存在服务器上.这是代码:

<?php
  $imageData=$GLOBALS['HTTP_RAW_POST_DATA'];
  $data = json_decode($imageData, true);

  $file = $data["file"];
  $image = $data["data"];

  $filteredData=substr($image, strpos($image, ",")+1);
  $unencodedData=base64_decode($filteredData);

  $fp = fopen( 'image/' . $file , 'wb' );
  fwrite( $fp, $unencodedData);
  fclose( $fp );
?>
Run Code Online (Sandbox Code Playgroud)

问题在于此代码有效.对于我使用它的三个页面中的两个,它工作得很好.问题是当我第三次复制并粘贴它以再次实现它时,由于某种原因,文件是在服务器上创建的,除了没有数据写入文件.我不认为这是客户端的问题,因为我在javascript中编写调试警报消息并在PHP中调试回调,并且两者都能够打印出数据.我做了这个简短的调试文件:

<?php
$fp = fopen('data.txt', 'wb');
if(is_writable('data.txt')){
    echo "file is writable<br>";
}
if(fwrite($fp, 'test') == FALSE){
    echo "failed to write data<br>";
}
fclose($fp);
?>
Run Code Online (Sandbox Code Playgroud)

输出是

file is writable
failed to write data
Run Code Online (Sandbox Code Playgroud)

我尝试使用chmod并设置所有内容,文件夹,文本文件,然后写入0777,我仍然得到相同的结果; 制作文件但没有数据写入其中.我有什么遗漏或任何其他可能有帮助的方法.我没有在谷歌上找到任何东西,我仍然感到困惑,为什么相同的代码完全按预期两次突然停止没有明显的原因.

提前致谢.

php fwrite

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

自定义PHP日志记录类保留双重写入错误消息

我正在为我的网站编写一个带PHP的自定义日志类,主要是为了获得更多的编程经验,我遇到了一个我无法解决的奇怪问题.我按照以下方式打电话给班级;

$objLogger = new logger(DIRECTORY_LOG, logger::DEBUG);
$objLogger->logDebug("Debug message 1", "Extra Notes Here");
$objLogger->logDebug("Debug message 2", "Extra Notes Here");
Run Code Online (Sandbox Code Playgroud)

加载页面后,日志文件说(注意它是1-2然后重复1-2);

2013-03-07 16:03:41 - DEBUG --> Debug message 1 ('Extra Notes Here')
2013-03-07 16:03:41 - DEBUG --> Debug message 2 ('Extra Notes Here')
2013-03-07 16:03:41 - DEBUG --> Debug message 1 ('Extra Notes Here')
2013-03-07 16:03:41 - DEBUG --> Debug message 2 ('Extra Notes Here')
Run Code Online (Sandbox Code Playgroud)

我只调用一次代码并写入2行.我在下面列出了该类的代码;

// Logging class to record data from the website into the daily log files
class logger …
Run Code Online (Sandbox Code Playgroud)

php logging class fwrite duplicates

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

fwrite将垃圾值写入文件

#include <stdio.h>

struct struct_type
{
  int d;
};

int main()
{

  struct struct_type *cust;

  cust->d=13;

  FILE* fp;

  fp = fopen("path to file", "wb+");

  or,

  fp = fopen("path to file", "w+");     

  fwrite(cust, sizeof(struct struct_type), 1, fp);

  fclose(fp);

  return 0;

}
Run Code Online (Sandbox Code Playgroud)

预期产出

13

但是将垃圾值写入文件.

c fwrite

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

PHP fwrite()没有写入日志文件

作为我的第一个PHP项目之一,我正在创建一个记录用户IP地址的IP日志记录脚本.由于某种原因,我的fwrite()函数似乎没有写入我的日志文件.

有人可以帮我吗?

<?php
// IP Logger Script
// By Sam Lev
// sam@levnet.us
$iplogfile = 'iplog.txt';
$ipaddress = $_SERVER['REMOTE_ADDR'];
$webpage = $_SERVER['SCRIPT_NAME'];
$timestamp = date('m/d/Y h:i:s');
$browser = $_SERVER['HTTP_USER_AGENT'];
$fp = fopen($iplogfile, 'a+');
chmod($iplogfile, 0777);
fwrite($fp, '['.$timestamp.']: '.$ipaddress.' '.$webpage.' '.$browser. "\r\n");
fclose($fp);
echo "IP ADDRESS: $ipaddress <br />\n";
echo "TIMESTAMP: $timestamp <br />\n";
echo "BROWSER: $browser <br />\n";
echo "Information logged to server. <br />\n";
?>
Run Code Online (Sandbox Code Playgroud)

运行脚本后,iplog.txt仍为空白.一切都很好.

谢谢

php logging fwrite

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

访问该文件时出现php fwrite问题

嗨,我的脚本有问题.

我正在使用下面的代码编写文件内容.并将文件保存在我的目录中,用户可以访问

$File = fopen('help/gossipcom.html','w'); 
fwrite($File, $header1 . $title2 . $footer1);  
fclose($File);
Run Code Online (Sandbox Code Playgroud)

这很完美 ..

但是我正在使用cron工作来运行它

如果用户访问在同一时间的文件时,cron作业运行,它会显示一个空白页我..How能避免这个问题?

谢谢!

php cron crontab fwrite

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

fread() - 想读取一个整数,但它返回垃圾

我有一个名为library.txt的动态.txt文件,它只有一行数据.正是这一个:

63Book Title1|Book Author 1|Book Editor 1|2014|English|255|99.989998|
Run Code Online (Sandbox Code Playgroud)

我正在尝试使用我创建的void readInteger()函数读取文件上的第一个整数(在本例中为数字"63"):

void readInteger(){
FILE *arq = fopen("library.txt", "r+");
if(arq == NULL){
    printf("ERROR WHILE OPENING FILE!!!");
    return;
}

int x;
fread(&x, sizeof(int), 1, arq);
printf("%d", x);
return;
}  
Run Code Online (Sandbox Code Playgroud)

但该功能始终保持打印疯狂的数字"1866609462".
有谁知道我的代码有什么问题?你能帮帮我吗?

c file fwrite fread

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

使用红色语言将数据保存到文件

我想将数据保存到文件中:

a: 0
b: 10
c: 20
d: 30

save %redout.txt [a b c d]
Run Code Online (Sandbox Code Playgroud)

我希望文件包含值.但是,该文件包含:

a b c d
Run Code Online (Sandbox Code Playgroud)

如何将变量值而不是变量名保存到文件中?

file rebol fwrite red

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

标签 统计

fwrite ×10

php ×5

c ×4

fread ×3

file ×2

logging ×2

class ×1

cron ×1

crontab ×1

duplicates ×1

fopen ×1

printf ×1

rebol ×1

red ×1

struct ×1

structure ×1