将标准输入读入我的程序 returns ��,��?这是什么
Readin in stdin to my program returns ��,��? What is this
我正在尝试了解如何修复我的代码,但它 returns 一堆奇怪的字符。这是什么,我该如何解决?
涉及 2 个程序。第一个读取 stdinput 并将该行发送到另一个程序,然后该程序分别解析和评估每个文件。当第二个程序尝试单独读取每个文件时,它会出错并且 returns 它无法读取文件“��,��”
为第一个程序输入标准输入的代码
while (fgets(tmpstring, 1024, stdin) && (tmpstring != NULL))
{
fileName = tmpstring;
write(report2access[1], fileName, (LINE_MAX* sizeof(char))+1);
write(negreport2access[1], fileName, (LINE_MAX* sizeof(char))+1);
}
在第二个程序中评估每个文件名的代码
while (fgets(tmpstring, 1024, stdin) && (tmpstring != NULL))
{
fileName = tmpstring;
//remove newline
if ((pos=strchr(fileName, '\n')) != NULL)
*pos = '[=12=]';
token = strtok(fileName, s);
//walk through tokens
while(token != NULL){
access = lastAccess(token);
if (num > 0){
if(access > argvseconds){
printf("%s\n", token); //#DEBUG
}
}
else if (num < 0){
if (access < argvseconds){
printf("%s\n", token); //#DEBUG
}
}
token = strtok(NULL, s);
}
}
一般来说,它看起来像一个文件名,后面跟着一堆垃圾字节被写入 negreport2access[1]
和 report2access[1]
然后第二个程序试图解析这些垃圾字节,就好像它们包含有效的文件名。
我正在尝试了解如何修复我的代码,但它 returns 一堆奇怪的字符。这是什么,我该如何解决?
涉及 2 个程序。第一个读取 stdinput 并将该行发送到另一个程序,然后该程序分别解析和评估每个文件。当第二个程序尝试单独读取每个文件时,它会出错并且 returns 它无法读取文件“��,��”
为第一个程序输入标准输入的代码
while (fgets(tmpstring, 1024, stdin) && (tmpstring != NULL))
{
fileName = tmpstring;
write(report2access[1], fileName, (LINE_MAX* sizeof(char))+1);
write(negreport2access[1], fileName, (LINE_MAX* sizeof(char))+1);
}
在第二个程序中评估每个文件名的代码
while (fgets(tmpstring, 1024, stdin) && (tmpstring != NULL))
{
fileName = tmpstring;
//remove newline
if ((pos=strchr(fileName, '\n')) != NULL)
*pos = '[=12=]';
token = strtok(fileName, s);
//walk through tokens
while(token != NULL){
access = lastAccess(token);
if (num > 0){
if(access > argvseconds){
printf("%s\n", token); //#DEBUG
}
}
else if (num < 0){
if (access < argvseconds){
printf("%s\n", token); //#DEBUG
}
}
token = strtok(NULL, s);
}
}
一般来说,它看起来像一个文件名,后面跟着一堆垃圾字节被写入 negreport2access[1]
和 report2access[1]
然后第二个程序试图解析这些垃圾字节,就好像它们包含有效的文件名。