On 2023-08-28 at 13:43:05 +0300, Ilpo Järvinen wrote:
On Mon, 28 Aug 2023, Wieczor-Retman, Maciej wrote:
diff --git a/tools/testing/selftests/resctrl/resctrlfs.c b/tools/testing/selftests/resctrl/resctrlfs.c index bd36ee206602..0f9644e5a25e 100644 --- a/tools/testing/selftests/resctrl/resctrlfs.c +++ b/tools/testing/selftests/resctrl/resctrlfs.c @@ -488,9 +488,8 @@ int write_bm_pid_to_resctrl(pid_t bm_pid, char *ctrlgrp, char *mongrp, */ int write_schemata(char *ctrlgrp, char *schemata, int cpu_no, char *resctrl_val) {
- char controlgroup[1024], schema[1024], reason[64];
- int resource_id, ret = 0;
- FILE *fp;
- char controlgroup[1024], schema[1024], reason[128];
- int resource_id, fp, ret = 0;
fp -> fd to follow the usual convention.
Okay, I'll change it
- fp = fopen(controlgroup, "w");
- fp = open(controlgroup, O_WRONLY); if (!fp) { sprintf(reason, "Failed to open control group"); ret = -1;
goto out; }
- if (fprintf(fp, "%s\n", schema) < 0) {
sprintf(reason, "Failed to write schemata in control group");
fclose(fp);
- if (write(fp, schema, strlen(schema)) < 0) {
snprintf() returns you the length, just store the return value and there's no need to calculate it here.
Thanks for the suggestion, tested it and it works fine, I'll add it in the next version.
snprintf(reason, sizeof(reason),
"write() failed : %s", strerror(errno));
ret = -1;close(fp);
goto out; }
- fclose(fp);
- close(fp);
- schema[strcspn(schema, "\n")] = 0;
Here too you can use the known length/index instead of strcspr().
Same as above