On Mon, Feb 22, 2016 at 09:10:49AM +0000, Wang Nan wrote: > perf_data_file__switch() closes current output file, renames it, then > open a new one to continue record. It will be used by perf record > to split output into multiple perf.data files. > > Signed-off-by: Wang Nan <[email protected]> > Signed-off-by: He Kuang <[email protected]> > Cc: Arnaldo Carvalho de Melo <[email protected]> > Cc: Jiri Olsa <[email protected]> > Cc: Masami Hiramatsu <[email protected]> > Cc: Namhyung Kim <[email protected]> > Cc: Zefan Li <[email protected]> > Cc: [email protected] > --- > tools/perf/util/data.c | 36 ++++++++++++++++++++++++++++++++++++ > tools/perf/util/data.h | 11 ++++++++++- > 2 files changed, 46 insertions(+), 1 deletion(-) > > diff --git a/tools/perf/util/data.c b/tools/perf/util/data.c > index 1921942..bfded6a 100644 > --- a/tools/perf/util/data.c > +++ b/tools/perf/util/data.c > @@ -136,3 +136,39 @@ ssize_t perf_data_file__write(struct perf_data_file > *file, > { > return writen(file->fd, buf, size); > } > + > +int perf_data_file__switch(struct perf_data_file *file, > + const char *postfix, > + size_t pos, bool at_exit) > +{ > + char *new_filepath; > + int ret; > + > + if (check_pipe(file)) > + return -EINVAL; > + if (perf_data_file__is_read(file)) > + return -EINVAL; > + > + if (asprintf(&new_filepath, "%s.%s", file->path, postfix) < 0) > + return -ENOMEM; > + > + rename(file->path, new_filepath);
should we check for rename's return value? jirka

