Rewrite fputs in assembly

-28 bytes, -1% cycles
This commit is contained in:
Colin Leroy-Mira
2024-01-30 17:51:00 +01:00
parent 51b946bf25
commit ba36071022
3 changed files with 82 additions and 28 deletions

40
test/ref/test_fputs.c Normal file
View File

@@ -0,0 +1,40 @@
/*
!!DESCRIPTION!! fgets test
!!LICENCE!! Public domain
*/
#include "common.h"
#include <ctype.h>
#include <errno.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
FILE *in, *out;
char buf[512], err;
#define INFILE "cf.in"
int main(int argc,char **argv)
{
in = fopen(INFILE, "rb");
if (in == NULL) {
return EXIT_FAILURE;
}
strcpy(buf, "test");
if (fputs(buf, in) != EOF) {
printf("Error: can fputs to a file opened for reading\n");
return EXIT_FAILURE;
}
clearerr(in);
while (fgets(buf, 512, in) != NULL) {
fputs(buf, stdout);
}
fclose(in);
return 0;
}