#include <stdio.h>
#include <stdlib.h>
#include <string.h>
// Function to copy text to clipboard
void copyToClipboard(const char *text) {
// Open clipboard for writing
FILE *clipboard = popen("xclip -selection clipboard", "w");
// Check if clipboard is open
if (clipboard == NULL) {
perror("Error opening clipboard");
exit(EXIT_FAILURE);
}
// Write text to clipboard
fprintf(clipboard, "%s", text);
// Close clipboard
if (pclose(clipboard) != 0) {
perror("Error closing clipboard");
exit(EXIT_FAILURE);
}
}
// Function to paste text from clipboard
char *pasteFromClipboard() {
// Open clipboard for reading
FILE *clipboard = popen("xclip -selection clipboard -o", "r");
// Check if clipboard is open
if (clipboard == NULL) {
perror("Error opening clipboard");
exit(EXIT_FAILURE);
}
// Allocate memory for pasted text
char *pastedText = NULL;
size_t bufferSize = 0;
// Read text from clipboard
if (getline(&pastedText, &bufferSize, clipboard) == -1) {
perror("Error reading from clipboard");
exit(EXIT_FAILURE);
}
// Close clipboard
if (pclose(clipboard) != 0) {
perror("Error closing clipboard");
exit(EXIT_FAILURE);
}
return pastedText;
}
int main() {
// Example usage
const char *textToCopy = "Hello, clipboard!";
// Copy text to clipboard
copyToClipboard(textToCopy);
printf("Text copied to clipboard: %s\n", textToCopy);
// Paste text from clipboard
char *pastedText = pasteFromClipboard();
printf("Text pasted from clipboard: %s\n", pastedText);
// Free allocated memory for pasted text
free(pastedText);
return 0;
}