int filter(int m, int readfd, int writefd)
我有一个名为filter的函数,它接受三个参数:过滤器值m,从中接收整数的文件描述符readfd,以及写入整数的文件描述符writefd。其目的是从数据流中删除(过滤)m的倍数的任何整数。如果完成时函数返回0而没有遇到错误,否则返回1。
如何为输入readfd
创建文件描述符?
答案 0 :(得分:1)
您应该做的是将您的文件放在脚本中进行测试(或单独的脚本)或使用解释器。
说testfile.h
包含你的功能。
test.c的:
#include "testfile.h"
int main() {
int x = filter(2, 0, 1);
if (x == 0) {
//Do stuff
}
else if (x == 1) {
// Do another thing if there was an error
else {
// Do something else
}
return 0;
}
使用终端将您的函数编译成可执行文件:
gcc test.c -o test.o
ld test.o test
答案 1 :(得分:1)
open函数将返回一个文件描述符。现在,您可以使用fdopen函数来获取与文件描述符关联的相同流。
int main()
{
int readfd,writefd,m=0;
readfd = open("file_name1.txt",O_RDONLY); //open the file in read only mode
writefd = open("file_name2.txt",O_WRONLY); // open the file in write only mode
filter(m, readfd, writefd);
}
int filter(int m, int readfd, int writefd)
{
FILE *fp1,*fp2;
fp1 = fdopen(readfd,"r");
fp2 = fdopen(writefd,"w");
}