In C language, write the following two functions maintaining a database of entries of type song in a file. Here is the definition of the struct song: typedef struct { char* title; char* artist; int year; } song; int add_song(const char* file_name, const song s); 1. The function gets the name of a file, and a song. If the song is not in the file, the function adds it to the file and returns 1. Otherwise, the function does not modify the file and returns 0. song* find_song(const char* file_name, const char* title); 2. The function gets the name of a file and a title of a song. It searches the file for the song with the given title. If a song is found, it returns a pointer to the song with all the details. If not found, the function returns NULL. You may assume the song titles are unique. Additional instructions and hints: 1. For the instructions on how to read and write to files see section "C Programming Files" in https://www.programiz.com/c-programming or https://www.tutorialspoint.com/cprogramming/c_file_io.htm or any other online resources. 2. There are no specific instructions about how you should store the information in the file. The only requirement is that the two functions are compatible with each other. That is, if a song is added using add_song, then find_song will be able to find it. You should decide carefully on the format for storing the data of each song. 3. When storing the title and artists, remember that you need to store the actual string and not the pointer to it. Also, it may be convenient to store the length of the string in the file. 4. Don't forget to close the file at the end of each function.

Computer Networking: A Top-Down Approach (7th Edition)
7th Edition
ISBN:9780133594140
Author:James Kurose, Keith Ross
Publisher:James Kurose, Keith Ross
Chapter1: Computer Networks And The Internet
Section: Chapter Questions
Problem R1RQ: What is the difference between a host and an end system? List several different types of end...
icon
Related questions
Question

In C language, write the following two functions maintaining a database of entries of type song in a file. Here is the definition of the struct song:

typedef struct {
char* title;
char* artist;
int year;
} song;

int add_song(const char* file_name, const song s);

1. The function gets the name of a file, and a song. If the song is not in the file, the function adds it to the file and returns 1. Otherwise, the function does not modify the file and returns 0.

song* find_song(const char* file_name, const char* title);

2. The function gets the name of a file and a title of a song. It searches the file for the song with the given title. If a song is found, it returns a pointer to the song with all the details. If not found, the function returns NULL. You may assume the song titles are unique.

Additional instructions and hints:

1. For the instructions on how to read and write to files see section "C Programming Files" in https://www.programiz.com/c-programming or https://www.tutorialspoint.com/cprogramming/c_file_io.htm or any other online resources.

2. There are no specific instructions about how you should store the information in the file. The only requirement is that the two functions are compatible with each other. That is, if a song is added using add_song, then find_song will be able to find it. You should decide carefully on the format for storing the data of each song.

3. When storing the title and artists, remember that you need to store the actual string and not the pointer to it. Also, it may be convenient to store the length of the string in the file.

4. Don't forget to close the file at the end of each function.

Expert Solution
steps

Step by step

Solved in 3 steps with 2 images

Blurred answer
Recommended textbooks for you
Computer Networking: A Top-Down Approach (7th Edi…
Computer Networking: A Top-Down Approach (7th Edi…
Computer Engineering
ISBN:
9780133594140
Author:
James Kurose, Keith Ross
Publisher:
PEARSON
Computer Organization and Design MIPS Edition, Fi…
Computer Organization and Design MIPS Edition, Fi…
Computer Engineering
ISBN:
9780124077263
Author:
David A. Patterson, John L. Hennessy
Publisher:
Elsevier Science
Network+ Guide to Networks (MindTap Course List)
Network+ Guide to Networks (MindTap Course List)
Computer Engineering
ISBN:
9781337569330
Author:
Jill West, Tamara Dean, Jean Andrews
Publisher:
Cengage Learning
Concepts of Database Management
Concepts of Database Management
Computer Engineering
ISBN:
9781337093422
Author:
Joy L. Starks, Philip J. Pratt, Mary Z. Last
Publisher:
Cengage Learning
Prelude to Programming
Prelude to Programming
Computer Engineering
ISBN:
9780133750423
Author:
VENIT, Stewart
Publisher:
Pearson Education
Sc Business Data Communications and Networking, T…
Sc Business Data Communications and Networking, T…
Computer Engineering
ISBN:
9781119368830
Author:
FITZGERALD
Publisher:
WILEY