我有以下结构:
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) 我正在创建一个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) 我从未在将数据写入文件方面遇到太多麻烦!我正在从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) 我在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的自定义日志类,主要是为了获得更多的编程经验,我遇到了一个我无法解决的奇怪问题.我按照以下方式打电话给班级;
$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) #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
但是将垃圾值写入文件.
作为我的第一个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仍为空白.一切都很好.
谢谢
嗨,我的脚本有问题.
我正在使用下面的代码编写文件内容.并将文件保存在我的目录中,用户可以访问
$File = fopen('help/gossipcom.html','w');
fwrite($File, $header1 . $title2 . $footer1);
fclose($File);
Run Code Online (Sandbox Code Playgroud)
这很完美 ..
但是我正在使用cron工作来运行它
如果用户访问在同一时间的文件时,cron作业运行,它会显示一个空白页我..How能避免这个问题?
谢谢!
我有一个名为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".
有谁知道我的代码有什么问题?你能帮帮我吗?
我想将数据保存到文件中:
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)
如何将变量值而不是变量名保存到文件中?